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 class template member typedef type
holds a modified type that is defined in the following stages:
The type
U
is defined asremove_reference<T>::type
.If
is_array<U>::value
is true, the modified typetype
isremove_extent<U>::type *
.Otherwise, if
is_function<U>::value
is true, the modified typetype
isadd_pointer<U>::type
.Otherwise, the modified type
type
isremove_cv<U>::type
.
Requirements
Header: <type_traits>
Namespace: std
See also
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for