| |
template<class T> struct remove_const; | The member typedef type denotes the type formed
by removing any top-level const-qualifier from T. [ Example 1:β remove_const_t<const volatile int> evaluates
to volatile int, whereas remove_const_t<const int*> evaluates to
const int*. β end example] |
template<class T> struct remove_volatile; | The member typedef type denotes the type formed
by removing any top-level volatile-qualifier from T. [ Example 2:β remove_volatile_t<const volatile int>
evaluates to const int,
whereas remove_volatile_t<volatile int*> evaluates to volatile int*. β end example] |
template<class T> struct remove_cv; | The member typedef type denotes the type formed
by removing any top-level cv-qualifiers from T. [ Example 3:β remove_cv_t<const volatile int>
evaluates to int, whereas remove_cv_t<const volatile int*>
evaluates to const volatile int*. β end example] |
template<class T> struct add_const; | The member typedef type denotes const T. [ Note 1:β const has no effect when T is a reference, function, or
top-level const-qualified type . β end note] |
template<class T> struct add_volatile; | The member typedef type denotes volatile T. [ Note 2:β volatile has no effect when T is a reference, function, or
top-level volatile-qualified type . β end note] |
template<class T> struct add_cv; | The member typedef type denotes
add_const_t<add_volatile_t<T>>. |