remove_all

This transformation will recursively remove cv qualifiers, pointers, references and array bounds until the type is a fundamental type, enum, union, class or member pointer.

  typedef typename remove_all<T>::type fundamental_type;
  
Listing: Example of remove_all
typedef const int** Array[4];
typedef typename remove_all<Array*&>::type Int;

Int has the type int.