Apache C++ Standard Library Reference Guide

## logical_not

Library: General utilities

    Does not inherit

- Local Index
- Summary
- Synopsis
- Description
- Interface
- See Also
- Standards Conformance

### Local Index

No Entries

### Summary

A unary function object that returns `true` if its argument is `false`

### Synopsis

    #include <functional>

    namespace std {
      template <class T>
      struct logical_not;
    }

### Description

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`.

### Interface

    namespace std {

      template <class T>
      struct logical_not : unary_function<T, bool> {
        bool operator() (const T&) const;
      };
    }

### See Also

Function Objects, unary_function

### Standards Conformance

ISO/IEC 14882:1998 -- International Standard for Information Systems -- Programming Language C++, Section 20.3.4