Function Object
Function object that returns the complement of the result of its binary predicate
#include <functional>
template<class Predicate> class binary_negate ;
binary_negate is a function object class that provides a return type for the function adaptor not2. not2 is a function adaptor, known as a negator, that 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.
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; typedef typename binary_function<typename Predicate::first_argument_type, typename Predicate::second_argument_type, bool>::first_argument_type first_argument_type; typedef typename binary_function<typename Predicate::first_argument_type, typename Predicate::second_argument_type, bool>::result_type result_type; explicit binary_negate (const Predicate&); bool operator() (const first_argument_type&, const second_argument_type&) const; }; // Non-member Functions template <class Predicate> binary_negate<Predicate> not2 (const Predicate& pred);
explicit binary_negate (const Predicate& pred);
Construct a binary_negate object from predicate pred.
bool operator() (const first_argument_type& x, const second_argument_type& y) const;
Return the result of pred(x,y)
binary_function, not2, unary_negate