binary_negate

template<class Pred>
    class binary_negate
        : public binary_function<Pred::first_argument_type,
            Pred::second_argument_type, bool> {
public:
    explicit binary_negate(const Pred& pr);
    bool operator()(const first_argument_type& x,
        const second_argument_type& y) const;
    };

The template class stores a copy of pr, which must be a binary function object. It defines its member function operator() as returning !pr(x, y).