|
||||
File indexing completed on 2025-01-30 09:59:17
0001 // Copyright Neil Groves 2009. Use, modification and 0002 // distribution is subject to the Boost Software License, Version 0003 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at 0004 // http://www.boost.org/LICENSE_1_0.txt) 0005 // 0006 // 0007 // For more information, see http://www.boost.org/libs/range/ 0008 // 0009 #ifndef BOOST_RANGE_ALGORITHM_REMOVE_COPY_IF_HPP_INCLUDED 0010 #define BOOST_RANGE_ALGORITHM_REMOVE_COPY_IF_HPP_INCLUDED 0011 0012 #include <boost/concept_check.hpp> 0013 #include <boost/range/begin.hpp> 0014 #include <boost/range/end.hpp> 0015 #include <boost/range/concepts.hpp> 0016 #include <algorithm> 0017 0018 namespace boost 0019 { 0020 /// \brief template function remove_copy_if 0021 /// 0022 /// range-based version of the remove_copy_if std algorithm 0023 /// 0024 /// \pre SinglePassRange is a model of the SinglePassRangeConcept 0025 /// \pre OutputIterator is a model of the OutputIteratorConcept 0026 /// \pre Predicate is a model of the PredicateConcept 0027 /// \pre InputIterator's value type is convertible to Predicate's argument type 0028 /// \pre out_it is not an iterator in the range rng 0029 template< class SinglePassRange, class OutputIterator, class Predicate > 0030 inline OutputIterator 0031 remove_copy_if(const SinglePassRange& rng, OutputIterator out_it, Predicate pred) 0032 { 0033 BOOST_RANGE_CONCEPT_ASSERT(( SinglePassRangeConcept<const SinglePassRange> )); 0034 return std::remove_copy_if(boost::begin(rng), boost::end(rng), out_it, pred); 0035 } 0036 } 0037 0038 #endif // include guard
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |