Apache C++ Standard Library Reference Guide

## negate

Library: General utilities

    Does not inherit

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

### Local Index

No Entries

### Summary

Unary function object that returns the negation of its argument

### Synopsis

    #include <functional>

    namespace std {
      template <class T>
      struct negate : public unary_function<T, T>;
    }

### Description

negate is a unary function object. Its `operator()` returns the inverse of its argument. For boolean arguments, `operator()` returns `true` if its argument is `false`, or `false` if its argument is `true`. For numeric arguments, `operator()` returns the additive inverse of the argument. 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

    namespace std {

      template <class T>
      struct negate : unary_function<T, T> {
        T 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.5