Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The latest version of this topic can be found at decay Class.
Produces the type as passed by value. Makes the type non-reference, non-const, non-volatile, or makes a pointer to the type from a function or an array type.
Syntax
template <class T>
struct decay;
template <class T>
using decay_t = typename decay<T>::type;
Parameters
T
The type to modify.
Remarks
Use the decay template to produce the resulting type as if the type was passed by value as an argument. The template class member typedef type holds a modified type that is defined in the following stages:
The type
Uis defined asremove_reference<T>::type.If
is_array<U>::valueis true, the modified typetypeisremove_extent<U>::type *.Otherwise, if
is_function<U>::valueis true, the modified typetypeisadd_pointer<U>::type.Otherwise, the modified type
typeisremove_cv<U>::type.
Requirements
Header: <type_traits>
Namespace: std