20 General utilities library [utilities]

20.15 Metaprogramming and type traits [meta]

20.15.8 Transformations between types [meta.trans] Pointer modifications [meta.trans.ptr]

Table 56: Pointer modifications [tab:meta.trans.ptr]
template<class T>
struct remove_­pointer;
If T has type “(possibly cv-qualified) pointer to T1” then the member typedef type names T1; otherwise, it names T.
template<class T>
struct add_­pointer;
If T names a referenceable type or a cv void type then the member typedef type names the same type as remove_­reference_­t<T>*; otherwise, type names T.