...one of the most highly
regarded and expertly designed C++ library projects in the
world.

— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards

Front Page / Algorithms / Transformation Algorithms / remove_if |

template< typename Sequence , typename Pred , typename In =unspecified> struct remove_if { typedefunspecifiedtype; };

Returns a new sequence that contains all the elements from [`begin<Sequence>::type`, `end<Sequence>::type`) range
except those that satisfy the predicate `Pred`.

[*Note:* This wording applies to a no-inserter version(s) of the algorithm. See the
Expression semantics subsection for a precise specification of the algorithm's
details in all cases — *end note*]

#include <boost/mpl/remove_if.hpp>

Parameter | Requirement | Description |
---|---|---|

Sequence |
Forward Sequence | An original sequence. |

Pred |
Unary Lambda Expression | A removal condition. |

In |
Inserter | An inserter. |

The semantics of an expression are defined only where they differ from, or are not defined in Reversible Algorithm.

For any Forward Sequence `s`, and an Inserter `in`, and an unary
Lambda Expression `pred`:

typedef remove_if<s,pred,in>::type r;

Return type: | A type. |
---|---|

Semantics: | Equivalent to typedef lambda<pred>::type p; typedef lambda<in::operation>::type op; typedef fold< s , in::state , eval_if< apply_wrap |

Linear. Performs exactly `size<s>::value` applications of `pred`, and at
most `size<s>::value` insertions.