SGI Logo


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,
                                    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 Default
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



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>
not2(const AdaptableBinaryPredicate& pred);
binary_negate See below.
bool operator()(first_argument_type, second_argument_type)
Binary Function
Function call operator

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

STL Main Page

Contact Us | Site Map | Trademarks | Privacy | Using this site means you accept its Terms of Use
Copyright © 2009 - 2017 Silicon Graphics International. All rights reserved.