SGI Logo


Category: functors Component type: type


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


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


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


Public base classes

unary_function<T, T>


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.


[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 Main Page

Contact Us | Site Map | Trademarks | Privacy | Using this site means you accept its Terms of Use
Copyright © 2009 - 2014 Silicon Graphics International. All rights reserved.