◐ Shell
clean mode source ↗

std::type_identity - cppreference.com

De cppreference.com

template< class T > struct type_identity;

(desde C++20)

Proporciona la definición de tipo (typedef) miembro type que denomina T (es decir, la transformación de identidad).

El comportamiento de un programa que añade especializaciones para type_identity no está definido.

Tipos miembro

Tipos auxiliares

template< class T > using type_identity_t = typename type_identity<T>::type;

(desde C++20)

Posible implementación

template< class T >
struct type_identity {
    using type = T;
};

Notas

type_identity puede usarse para establecer contextos no deducidos en la deducción de argumentos de plantilla:

template<class T>
void f(T, T);

template<class T>
void g(T, std::type_identity_t<T>);

f(4.2, 0); // ERROR, tipos conflictivos deducidos para 'T'
g(4.2, 0); // de acuerdo, llama a g<double>

Ejemplo