# Negators

## Compounds

class | binary_negate
| One of the negation functors. More...
class | unary_negate
| One of the negation functors. More...

## Functions

template<class _Predicate> unary_negate< _Predicate > | not1 (const _Predicate &__pred)
| One of the negation functors. More...
template<class _Predicate> binary_negate< _Predicate > | not2 (const _Predicate &__pred)
| One of the negation functors. More...

## 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.

## Function Documentation

template<class _Predicate>
unary_negate<_Predicate> not1 | ( | const _Predicate & | __pred | ) | `[inline]`

| One of the negation functors. Definition at line 286 of file stl_function.h.

template<class _Predicate>
binary_negate<_Predicate> not2 | ( | const _Predicate & | __pred | ) | `[inline]`

| One of the negation functors. Definition at line 311 of file stl_function.h.