[section:adjacent_filtered adjacent_filtered]

[table
    [[Syntax] [Code]]
    [[Pipe] [`rng | boost::adaptors::adjacent_filtered(bi_pred)`]]
    [[Function] [`boost::adaptors::adjacent_filter(rng, bi_pred)`]]
]

* [*Precondition:]  The `value_type` of the range is convertible to both argument types of `bi_pred`.
* [*Postcondition:] For all adjacent elements `[x,y]` in the returned range, `bi_pred(x,y)` is `true`.
* [*Throws:] Whatever the copy constructor of `bi_pred` might throw.
* [*Range Category:] __single_pass_range__
* [*Returned Range Category:] The minimum of the range category of `rng` and __forward_range__

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

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

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

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

    return 0;
}
``
[endsect]

This would produce the output:
``
1,2,3,4,5,6
``
[endsect]


