20 General utilities library [utilities]

20.15 Metaprogramming and type traits [meta]

20.15.7 Transformations between types [meta.trans]

20.15.7.5 Pointer modifications [meta.trans.ptr]

Table 49 — Pointer modifications
TemplateComments
template <class T>
struct remove_pointer;
If T has type “(possibly cv-qualified) pointer to T1” then the member typedef type shall name T1; otherwise, it shall name T.
template <class T>
struct add_pointer;
If T names a referenceable type ([defns.referenceable]) or a (possibly cv-qualified) void type then the member typedef type shall name the same type as remove_reference_t<T>*; otherwise, type shall name T.