20 General utilities library [utilities]

20.8 Function objects [function.objects]

20.8.6 Logical operations [logical.operations]

The library provides basic function object classes for all of the logical operators in the language ([expr.log.and], [expr.log.or], [expr.unary.op]).

template <class T> struct logical_and { bool operator()(const T& x, const T& y) const; typedef T first_argument_type; typedef T second_argument_type; typedef bool result_type; };

operator() returns x && y.

template <class T> struct logical_or { bool operator()(const T& x, const T& y) const; typedef T first_argument_type; typedef T second_argument_type; typedef bool result_type; };

operator() returns x || y.

template <class T> struct logical_not { bool operator()(const T& x) const; typedef T argument_type; typedef bool result_type; };

operator() returns !x.