...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> BOOST_CXX14_CONSTEXPR OutputIterator copy_if(InputIterator, InputIterator, OutputIterator, Predicate); template<typename Range, typename OutputIterator, typename Predicate> BOOST_CXX14_CONSTEXPR OutputIterator copy_if(const Range &, OutputIterator, Predicate); template<typename InputIterator, typename OutputIterator, typename Predicate> BOOST_CXX14_CONSTEXPR std::pair< InputIterator, OutputIterator > copy_while(InputIterator, InputIterator, OutputIterator, Predicate); template<typename Range, typename OutputIterator, typename Predicate> BOOST_CXX14_CONSTEXPR std::pair< typename boost::range_iterator< const Range >::type, OutputIterator > copy_while(const Range &, OutputIterator, Predicate); template<typename InputIterator, typename OutputIterator, typename Predicate> BOOST_CXX14_CONSTEXPR std::pair< InputIterator, OutputIterator > copy_until(InputIterator, InputIterator, OutputIterator, Predicate); template<typename Range, typename OutputIterator, typename Predicate> BOOST_CXX14_CONSTEXPR std::pair< typename boost::range_iterator< const Range >::type, OutputIterator > copy_until(const Range &, OutputIterator, Predicate); template<typename InputIterator, typename OutputIterator, typename CopyPredicate, typename TerminatePred> BOOST_CXX14_CONSTEXPR std::pair< InputIterator, OutputIterator > copy_if_while(InputIterator, InputIterator, OutputIterator, CopyPredicate, TerminatePred); template<typename Range, typename OutputIterator, typename CopyPredicate, typename TerminatePred> BOOST_CXX14_CONSTEXPR std::pair< typename boost::range_iterator< const Range >::type, OutputIterator > copy_if_while(const Range &, OutputIterator, CopyPredicate, TerminatePred); template<typename InputIterator, typename OutputIterator, typename CopyPredicate, typename TerminatePred> BOOST_CXX14_CONSTEXPR std::pair< InputIterator, OutputIterator > copy_if_until(InputIterator, InputIterator, OutputIterator, CopyPredicate, TerminatePred); template<typename Range, typename OutputIterator, typename CopyPredicate, typename TerminatePred> BOOST_CXX14_CONSTEXPR std::pair< typename boost::range_iterator< const Range >::type, OutputIterator > copy_if_until(const Range &, OutputIterator, CopyPredicate, TerminatePred); } }