# project2nd<Arg1, Arg2>

Category: functors | Component type: type

### Description

`Project2nd` is a function object that takes two arguments and returns its second argument; the first argument is unused. It is essentially a generalization of `identity` to the case of a Binary Function.

### Example

    int main()
    {
      vector<char*> v1(10, (char*) 0);
      vector<int> v2(10, 137);
      vector<int> result(10);

      transform(v1.begin(), v1.end(), v2.begin(), result.begin(),
                project2nd<char*, int>());
      assert(equal(v2.begin(), v2.end(), result.begin()));
    }

### Definition

Defined in the standard header functional, and in the nonstandard backward-compatibility header function.h. This function object is an SGI extension; it is not part of the C++ standard.

### Template parameters

Parameter | Description | Default
--- | --- | ---
`Arg1` | `project2nd`'s first argument type. |
`Arg2` | `project2nd`'s second argument type, and its result type. |

### Model of

Adaptable Binary Function

### Type requirements

None.

### Public base classes

binary_function<Arg1, Arg2, Arg2>

### Members

Member | Where defined | Description
--- | --- | ---
`first_argument_type` | Adaptable Binary Function | The type of `project2nd`'s first argument: `Arg1`
`second_argument_type` | Adaptable Binary Function | The type of `project2nd`'s second argument: `Arg2`
`result_type` | Adaptable Binary Function | The type of the result: `Arg2`.
`Arg1 operator()(const Arg1&, const Arg2& y) const` | Adaptable Binary Function | Function call. The return value is `y`.

### New members

All of `project2nd`'s members are defined in the Adaptable Binary Function requirements. `project2nd` does not introduce any new members.

### Notes

### See also

Function objects, `identity`, `project1st`, `select1st`, `select2nd`

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