Will remove the top level volatile (if present) from a type.
typedef typename remove_volatile<T>::type non_volatile_type;
The resulting "non_volatile_type" will be the same as the input type T, except that if T is volatile qualified, that volatile qualification will be removed.
typedef typename remove_volatile <volatile int>::type Int; Int has type int.