Template | Comments |
template <class T> struct remove_reference; | If T has type “reference to T1” then the member typedef type names T1; otherwise, type names T. |
template <class T> struct add_lvalue_reference; | If T names a referenceable type then the member typedef type names T&; otherwise, type names T. [ Note: This rule reflects the semantics of reference collapsing ([dcl.ref]). — end note ] |
template <class T> struct add_rvalue_reference; | If T names a referenceable type then the member typedef type names T&&; otherwise, type names T. [ Note: This rule reflects the semantics of reference collapsing ([dcl.ref]). For example, when a type T names a type T1&, the type add_rvalue_reference_t<T> is not an rvalue reference. — end note ] |