Library: General utilities
Does not inherit
A unary function object that returns true if its argument is false
#include <functional> namespace std { template <class T> struct logical_not; }
logical_not is a unary function object. Its operator() returns true if its argument is false. You can pass a logical_not object to any algorithm that requires a unary function. For example, the replace_if() algorithm replaces an element with another value if the result of a unary operation is true. logical_not is used in that algorithm in the following manner:
vector<int> vec1; . . . void replace_if(vec1.begin(), vec1.end(), logical_not<int>(),1);
This call to replace_if() replaces all zeros in the vec1 with 1.
namespace std { template <class T> struct logical_not : unary_function<T, bool> { bool operator() (const T&) const; }; }
Function Objects, unary_function
ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 20.3.4