boostorg / range

Boost.org range module
http://boost.org/libs/range
43 stars 104 forks source link

Fix range filtered/filter return type in documentation #147

Open VincentRouvreau opened 1 year ago

VincentRouvreau commented 1 year ago

I was struggling to find the return type of range filtered/filter.

Here is a small working example (based from your documentation):

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

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

int main(int argc, const char* argv[])
{
    std::vector<int> input {1,2,3,4,5,6,7,8,9};

    boost::filtered_range<decltype(is_even()), decltype(input)> f_range = boost::adaptors::filter(input, is_even());
    boost::copy(f_range, std::ostream_iterator<int>(std::cout, ","));

    return 0;
}