| Home | Libraries | People | FAQ | More

##### transformed

Syntax | Code
--- | ---
Pipe | `rng | boost::adaptors::transformed(fun)`
Function | `boost::adaptors::transform(rng, fun)`

- Precondition: The `value_type` of the range is convertible to the argument type of `fun`.
- Postcondition: For all elements `x` in the returned range, `x` is the result of `fun(y)` where `y` is the corresponding element in the original range.
- Throws: Whatever the copy-constructor of `fun` might throw.
- Range Category: Single Pass Range
- Range Return Type: `boost::transformed_range<decltype(rng)>`
- Returned Range Category: The range category of `rng`.

###### transformed example

    #include <boost/range/adaptor/transformed.hpp>
    #include <boost/range/algorithm/copy.hpp>
    #include <boost/assign.hpp>
    #include <iterator>
    #include <iostream>
    #include <vector>

    struct double_int
    {
        typedef int result_type;
        int operator()(int x) const { return x * 2; }
    };

    int main(int argc, const char* argv[])
    {
        using namespace boost::adaptors;
        using namespace boost::assign;

        std::vector<int> input;
        input += 1,2,3,4,5,6,7,8,9,10;

        boost::copy(
            input | transformed(double_int()),
            std::ostream_iterator<int>(std::cout, ","));

        return 0;
    }

This would produce the output:

    2,4,6,8,10,12,14,16,18,20,