# negate<T>

Category: functors | Component type: type

### Description

`Negate<T>` is a function object. Specifically, it is an Adaptable Unary Function. If `f` is an object of class `negate<T>` and `x` is an object of class `T`, then `f(x)` returns `-x`.

### Example

Each element in `V2` will be the negative (additive inverse) of the corresponding element in `V1`.

    const int N = 1000;
    vector<double> V1(N);
    vector<double> V2(N);

    iota(V1.begin(), V1.end(), 1);

    assert(V2.size() >= V1.size());
    transform(V1.begin(), V1.end(), V2.begin(),
              negate<int>());

### Definition

Defined in the standard header functional, and in the nonstandard backward-compatibility header function.h.

### Template parameters

Parameter | Description | Default
--- | --- | ---
`T` | The function object's argument type and result type. |

### Model of

Adaptable Unary Function, Default Constructible

### Type requirements

`T` must be a numeric type; if `x` is an object of type `T`, then `-x` must be defined and must have a return type that is convertible to `T`. `T` must be Assignable.

### Public base classes

`unary_function<T, T>`

### Members

Member | Where defined | Description
--- | --- | ---
`argument_type` | Adaptable Unary Function | The type of the second argument: `T`
`result_type` | Adaptable Unary Function | The type of the result: `T`
`T operator()(const T& x)` | Adaptable Unary Function | Function call operator. The return value is `-x`.
`negate()` | Default Constructible | The default constructor.

### New members

All of `negate`'s members are defined in the Adaptable Unary Function and Default Constructible requirements. `Negate` does not introduce any new members.

### Notes

### See also

The Function Object overview, Adaptable Unary Function, `unary_function`, `plus`, `minus`, `multiplies`, `divides`, `modulus`

Copyright © 1999 Silicon Graphics, Inc. All Rights Reserved. TrademarkInformation