
What you mean by the ranges? Although I'm learning it fast, I'm still fairly new to the STL and Boost. I don't think I've seen this yet. -- Bill --
-----Original Message----- From: boost-bounces@lists.boost.org [mailto:boost-bounces@lists.boost.org] On Behalf Of Thorsten Ottosen Sent: Tuesday, March 14, 2006 7:08 AM To: boost@lists.boost.org Subject: Re: [boost] [off-topic] why do we not have std::copy_if?
Caleb Epstein wrote:
I've recently wondered why std::copy doesn't have an analogous std::copy_if:
template<class InIt, class OutIt, class Pr> OutIt *copy_if*(InIt first, InIt last, OutIt dest, Pr pred);
that would copy elements to dest where the predicate returns true. Not unlike "grep" in Perl and "filter" in Python.
The same goal can be achieved with std::remove_copy_if and the use of a sense-reversed predicate, but this leads to confusing code IMHO.
Why wouldn't this be part of the Standard Library, or am I missing something ridiculously obvious?
I guess it should have been part of C++98, but didn't make it due to perhaps time contraints.
With the advent of ranges, we might make *all* the xxx_if versions of algorithms redundant by replacing xxx_if( range, pred ) with
xxx( range | filtered( pred ) );
-Thorsten _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost