Класс decay
Создает тип в качестве передаваемого значения. Создает тип, не являющийся ссылочным, константным, временным, или создает указатель на тип из функции или типа массива.
Синтаксис
template <class T>
struct decay;
template <class T>
using decay_t = typename decay<T>::type;
Параметры
T
Тип для изменения.
Замечания
Используйте шаблон decay для создания результирующего типа, как если бы тип был передан по значению в качестве аргумента. Тип элемента шаблона type
класса содержит измененный тип, определенный на следующих этапах:
Тип
U
определяется какremove_reference<T>::type
.Если
is_array<U>::value
имеет значение true, измененный типtype
имеет значениеremove_extent<U>::type *
.Если же
is_function<U>::value
имеет значение true, измененный типtype
имеет значениеadd_pointer<U>::type
.В противном случае измененный тип
type
имеет значениеremove_cv<U>::type
.
Требования
Заголовок:<type_traits>
Пространство имен: std