remove_reference

If given a reference, returns the type being referenced. If given a non-reference, simply returns the input.

  typedef typename 
  remove_reference<T>::type referenced_type;
Listing: Example of remove_reference
typedef typename remove_reference<int&>::type Int;
typedef typename remove_reference<const int&>::type ConstInt;

Int has the type int, and ConstInt has the type const int.