remove_pointer

If given a pointer, returns the type being pointed to. If given a non-pointer type, simply returns the input.

  typedef typename 
  remove_pointer<T>::type pointed_to_type;
  
Listing: Example of remove_pointer
typedef typename 
remove_pointer<const int*volatile*const>::type IntPtr;

typedef typename remove_pointer<IntPtr>::type Int;

IntPtr will have type type const int*volatile. Int will have the type 
const int.