...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Copy a subset of a sequence to a new sequence.
Marshall Clow
namespace boost { namespace algorithm { template<typename InputIterator, typename OutputIterator, typename Predicate> OutputIterator copy_if(InputIterator, InputIterator, OutputIterator, Predicate); template<typename Range, typename OutputIterator, typename Predicate> OutputIterator copy_if(const Range &, OutputIterator, Predicate); template<typename InputIterator, typename OutputIterator, typename Predicate> std::pair< InputIterator, OutputIterator > copy_while(InputIterator, InputIterator, OutputIterator, Predicate); template<typename Range, typename OutputIterator, typename Predicate> std::pair< typename boost::range_iterator< const Range >::type, OutputIterator > copy_while(const Range &, OutputIterator, Predicate); template<typename InputIterator, typename OutputIterator, typename Predicate> std::pair< InputIterator, OutputIterator > copy_until(InputIterator, InputIterator, OutputIterator, Predicate); template<typename Range, typename OutputIterator, typename Predicate> std::pair< typename boost::range_iterator< const Range >::type, OutputIterator > copy_until(const Range &, OutputIterator, Predicate); } }