SGI Logo


identity<T>

Category: functors Component type: type

Description

Identity is a Unary Function that represents the identity function: it takes a single argument x, and returns x.

Example

int main()
{
  int x = 137;
  identity<int> id;
  assert(x == id(x));   
}           

Definition

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

Template parameters

Parameter Description Default
T The function object's argument type, and return type. [1]  

Model of

Adaptable Unary Function

Type requirements

None.

Public base classes

unary_function<T, T>

Members

Member Where defined Description
argument_type Adaptable Unary Function The type of identity's argument: T.
result_type Adaptable Unary Function The type of the result: T. [1]
const T& operator()(const T&) const Adaptable Unary Function Function call. The return value is simply the argument.

New members

All of identity's members are defined in the Adaptable Unary Function requirements. Identity does not introduce any new members.

Notes

[1] It is essential that the return type and the argument type are the same: generalizing identity to allow them to differ would not work. The reason is that identity returns a const reference to its argument, rather than a copy of its argument. If identity were allowed to perform a conversion, then this would be a dangling reference.

See also

The function object overview, select1st, select2nd, project1st, project2nd

STL Home