# modulus<T>

Category: functors | Component type: type

### Description

`Modulus<T>` is a function object. Specifically, it is an Adaptable Binary Function. If `f` is an object of class `modulus<T>` and `x` and `y` are objects of class `T`, then `f(x,y)` returns `x%y`.

### Example

Each element in `V3` will be the modulus of the corresponding elements in `V1` and `V2`

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

    iota(V1.begin(), V1.end(), 1);
    fill(V2.begin(), V2.end(), 75);

    assert(V2.size() >= V1.size() && V3.size() >= V1.size());
    transform(V1.begin(), V1.end(), V2.begin(), V3.begin(),
              modulus<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 Binary Function, Default Constructible

### Type requirements

`T` must be an integral type; if `x` and `y` are objects of type `T`, then `x%y` must be defined and must have a return type that is convertible to `T`. `T` must be Assignable.

### Public base classes

`binary_function<T, T, T>`

### Members

Member | Where defined | Description
--- | --- | ---
`first_argument_type` | Adaptable Binary Function | The type of the first argument: `T`
`second_argument_type` | Adaptable Binary Function | The type of the second argument: `T`
`result_type` | Adaptable Binary Function | The type of the result: `T`
`T operator()(const T& x, const T& y)` | Adaptable Binary Function | Function call operator. The return value is `x % y`.
`modulus()` | Default Constructible | The default constructor.

### New members

All of `modulus`'s members are defined in the Adaptable Binary Function and Default Constructible requirements. `Modulus` does not introduce any new members.

### Notes

### See also

The Function Object overview, Adaptable Binary Function, `binary_function`, `plus`, `minus`, `multiplies`, `divides`, `negate`

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