[section:replaced_if replaced_if]

[table
    [[Syntax] [Code]]
    [[Pipe] [`rng | boost::adaptors::replaced_if(pred, new_value)`]]
    [[Function] [`boost::adaptors::replace_if(rng, pred, new_value)`]]
]

* [*Precondition:]
    * The range `value_type` is convertible to the argument type of `pred`.
    * `new_value` is convertible to the `value_type` of the range.
* [*Postconditions:] For all elements `x` in the returned range, the value `x` is equal to the value of `pred(y) ? new_value : y` where `y` is the corresponding element in the original range.
* [*Range Category:] __forward_range__
* [*Returned Range Category:] The range category of `rng`.

[section:replaced_if_example replaced_if example]
``
#include <boost/range/adaptor/replaced_if.hpp>
#include <boost/range/algorithm/copy.hpp>
#include <boost/assign.hpp>
#include <algorithm>
#include <iostream>
#include <vector>

struct is_even
{
    bool operator()(int x) const { return x % 2 == 0; }
};

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;

    boost::copy(
        input | replaced_if(is_even(), 10),
        std::ostream_iterator<int>(std::cout, ","));

    return 0;
}
``
[endsect]

This would produce the output:
``
1,10,3,10,5,10,7,10,9
``
[endsect]


