8#ifndef ADOBE_ALGORITHM_REMOVE_HPP
9#define ADOBE_ALGORITHM_REMOVE_HPP
13#include <boost/range/begin.hpp>
14#include <boost/range/end.hpp>
40template <
class InputRange,
class T>
41inline typename boost::range_iterator<InputRange>::type
remove(InputRange& range,
const T& value) {
42 return std::remove(boost::begin(range), boost::end(range), value);
50template <
class InputIterator,
class Predicate>
51inline InputIterator
remove_if(InputIterator first, InputIterator last, Predicate pred) {
52 return std::remove_if(first, last, std::bind(pred, std::placeholders::_1));
60template <
class InputRange,
class Predicate>
61inline typename boost::range_iterator<InputRange>::type
remove_if(InputRange& range,
71template <
class InputRange,
class OutputIterator,
class T>
72inline typename boost::range_iterator<InputRange>::type
73remove_copy(InputRange& range, OutputIterator result,
const T& value) {
74 return std::remove_copy(boost::begin(range), boost::end(range), result, value);
82template <
class InputRange,
class OutputIterator,
class T>
83inline typename boost::range_const_iterator<InputRange>::type
84remove_copy(
const InputRange& range, OutputIterator result,
const T& value) {
85 return std::remove_copy(boost::begin(range), boost::end(range), result, value);
93template <
class InputIterator,
class OutputIterator,
class Predicate>
94inline InputIterator
remove_copy_if(InputIterator first, InputIterator last, OutputIterator result,
96 return std::remove_copy_if(first, last, result, std::bind(pred, std::placeholders::_1));
104template <
class InputRange,
class OutputIterator,
class Predicate>
105inline typename boost::range_iterator<InputRange>::type
115template <
class InputRange,
class OutputIterator,
class Predicate>
116inline typename boost::range_const_iterator<InputRange>::type
boost::range_iterator< InputRange >::type remove_copy(InputRange &range, OutputIterator result, const T &value)
remove implementation
InputIterator remove_copy_if(InputIterator first, InputIterator last, OutputIterator result, Predicate pred)
remove implementation
InputIterator remove_if(InputIterator first, InputIterator last, Predicate pred)
remove implementation
boost::range_iterator< InputRange >::type remove(InputRange &range, const T &value)
remove implementation