Книга: Standard Template Library Programmer



Categories: functors, adaptors

Component type: type


Binary_negate is a function object adaptor: it is an Adaptable Binary Predicate that represents the logical negation of some other Adaptable Binary Predicate . That is: if f is an object of class binary_negate<AdaptableBinaryPredicate>, then there exists an object pred of class AdaptableBinaryPredicate such that f(x,y) always returns the same value as !pred(x,y). There is rarely any reason to construct a binary_negate directly; it is almost always easier to use the helper function not2.


Finds the first character in a string that is neither ' ' nor 'n'.

char str[MAXLEN];

const char* wptr = find_if(str, str + MAXLEN, compose2(not2(logical_or<bool>()), bind2nd(equal_to<char>(), ' '), bind2nd(equal_to<char>(), 'n')));
assert(wptr == str + MAXLEN || !(*wptr == ' ' || *wptr == 'n'));


Defined in the standard header functional, and in the nonstandard backward-compatibility header function.h.

Template parameters

Parameter Description
AdaptableBinaryPredicate The type of the function object that this binary_negate is the logical negation of.

Model of

Adaptable Binary Predicate

Type requirements

AdaptableBinaryPredicate must be a model of Adaptable Binary Predicate.

Public base classes

binary_function<AdaptableBinaryPredicate::first_argument_type, AdaptableBinaryPredicate::second_argument_type, bool>


Member Where defined Description
first_argument_type Adaptable Binary Function The type of the first argument: AdaptableBinaryPredicate::first_argument_type
second_argument_type Adaptable Binary Function The type of the second argument: AdaptableBinaryPredicate::second_argument_type
result_type Adaptable Binary Function The type of the result: bool
binary_negate(const AdaptableBinaryPredicate& pred) binary_negate See below.
template <class AdaptableBinaryPredicate> binary_negate<AdaptableBinaryPredicate> not2(const AdaptableBinaryPredicate& pred); binary_negate See below.

New members

These members are not defined in the Adaptable Binary Predicate requirements, but are specific to binary_negate.

Member Description
binary_negate(const AdaptableBinaryPredicate& pred) The constructor. Creates a binary_negate<AdaptableBinaryPredicate> whose underlying predicate is pred.
template <class AdaptableBinaryPredicate> binary_negate<AdaptableBinaryPredicate> not2(const AdaptableBinaryPredicate& pred); If p is of type AdaptableBinaryPredicate then not2(p) is equivalent to binary_negate<AdaptableBinaryPredicate>(p), but more convenient. This is a global function, not a member function.

See also

The function object overview, AdaptablePredicate, Predicate, unary_negate, unary_compose, binary_compose

Оглавление книги

Генерация: 0.808. Запросов К БД/Cache: 3 / 0
Вверх Вниз