## logical_not

    Function Object

- Summary
- Data Type and Member Function Indexes
- Synopsis
- Description
- Interface
- Warnings
- See Also

### Summary

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

### Data Type and Member Function Indexes
(exclusive of constructors and destructors)

None

### Synopsis

    #include <functional>
    template <class T>
    struct logical_not : unary_function<T, bool> ;

### 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

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

### Warnings

If your compiler does not support default template parameters, you always need to supply the `Allocator` template argument. For instance, you have to write:

`vector<int, allocator<int> >`

instead of:

`vector<int>`

If your compiler does not support namespaces, then you do not need the using declaration for `std`.

### See Also

Function Objects, unary_function

Copyright (c) 1998, Rogue Wave Software, Inc.
Send mail to report errors or comment on the documentation.
OEM Release, June 1998