8#ifndef ADOBE_ALGORITHM_ERASE_IF_HPP
9#define ADOBE_ALGORITHM_ERASE_IF_HPP
15#include <boost/next_prior.hpp>
16#include <boost/range/begin.hpp>
17#include <boost/range/end.hpp>
43namespace implementation {
47typename T::iterator erase(T& x,
typename T::iterator f,
typename T::iterator l, block_tag) {
52typename T::iterator erase(T& x,
typename T::iterator f,
typename T::iterator l, node_tag) {
65typename T::iterator
erase(T& x,
typename T::iterator f,
typename T::iterator l) {
77typename T::iterator
erase(T& x,
const R& r) {
78 return erase(x, boost::begin(r), boost::end(r));
86typename T::iterator
erase(T& x,
typename T::iterator f) {
87 assert(f != end(x) &&
"FATAL (sparent) : Attempt to erase the end of a container.");
88 return erase(x, f, boost::next(f));
93namespace implementation {
98void erase_if(T& x,
typename T::iterator f,
typename T::iterator l, P p, block_tag) {
105void erase_if(T& x,
typename T::iterator f,
typename T::iterator l, P p, node_tag) {
122void erase_if(T& x,
typename T::iterator f,
typename T::iterator l, P p) {
134 erase_if(x, boost::begin(x), boost::end(x), p);
T::iterator erase(T &x, typename T::iterator f, typename T::iterator l)
void erase_if(T &x, typename T::iterator f, typename T::iterator l, P p)
std::pair< I, I > find_range_if(I f, I l, P p)
InputIterator remove_if(InputIterator first, InputIterator last, Predicate pred)
remove implementation