## negate

    Function Object

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

### Summary

Unary function object that returns the negation of its argument.

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

None

### Synopsis

    #include <functional>
    template <class T>
    struct negate : public unary_function<T, T>;

### Description

negate is a unary function object. Its `operator()` returns the negation of its argument: `true` if its argument is `false`, or `false` if its argument is `true`. You can pass a negate object to any algorithm that requires a unary function. For example, the transform algorithm applies a unary operation to the values in a collection and stores the result. negate could be used in that algorithm in the following manner:

    vector<int> vec1;
    vector<int> vecResult;
    .
    .
    .
    transform(vec1.begin(), vec1.end(), vecResult.begin(),
              negate<int>());

After this call to transform, `vecResult(n)` contains the negation of the element in `vec1(n)`.

### Interface

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

### Warnings

If your compiler does not support default template parameters, then you always need to supply the `Allocator` template argument. For instance, you need 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