...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::algorithm::copy_while — Copies all the elements at the start of the input range that satisfy the predicate to the output range.
// In header: <boost/algorithm/cxx11/copy_if.hpp> template<typename Range, typename OutputIterator, typename Predicate> BOOST_CXX14_CONSTEXPR std::pair< typename boost::range_iterator< const Range >::type, OutputIterator > copy_while(const Range & r, OutputIterator result, Predicate p);