Library: General utilities
binary_negatebinary_function
A function object that returns the complement of the result of its binary predicate
#include <functional>
namespace std {
template<class Predicate>
class binary_negate;
}
binary_negate is the function object class that is the return type for the function adaptor not2(). not2(), known as a negator, takes a binary predicate function object as its argument and returns a binary predicate function object that is the complement of the original.
Note that not2() works only with function objects that are defined as subclasses of the class binary_function.
namespace std {
template<class Predicate>
class binary_negate : public
binary_function<typename Predicate::first_argument_type,
typename Predicate::second_argument_type,
bool>
{
public:
typedef typename binary_function<
typename Predicate::first_argument_type,
typename Predicate::second_argument_type,
bool>::second_argument_type second_argument_type;
explicit binary_negate (const Predicate&);
bool operator()
(const typename Predicate::first_argument_type&,
const typename Predicate::second_argument_type&)
const;
};
// Nonmember Functions
template <class Predicate>
binary_negate<Predicate> not2 (const Predicate& pred);
}
explicit binary_negate(const Predicate& pred);
Constructs a binary_negate object from predicate pred.
bool
operator()(const first_argument_type& x,
const second_argument_type& y) const;
Returns the result of !pred(x,y).
binary_function, not2(), unary_negate
ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 20.3.5