STLdoc
STLdocumentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Modules

Modules

 Adaptors for pointers to functions
 

Detailed Description

The functions not1 and not2 each take a predicate functor and return an instance of unary_negate or binary_negate, respectively. These classes are functors whose operator() performs the stored predicate function and then returns the negation of the result.

For example, given a vector of integers and a trivial predicate,

struct IntGreaterThanThree
: public std::unary_function<int, bool>
{
bool operator() (int x) { return x > 3; }
};
std::find_if (v.begin(), v.end(), not1(IntGreaterThanThree()));

The call to find_if will locate the first index (i) of v for which !(v[i] > 3) is true.

The not1/unary_negate combination works on predicates taking a single argument. The not2/binary_negate combination works on predicates which take two arguments.