C++ · Intermediário · Inglês · Técnico
decltype
Palavra-chave que devolve o tipo exato de uma expressão ou entidade, sem avaliá-la. Preserva referências e const, ao contrário de auto, que os descarta.
Onde usar
Usada em templates para declarar tipos de retorno ou variáveis que dependem de outras expressões, como decltype(a + b). Também aparece em traits e em perfect forwarding com decltype(auto).
Em código
int a = 1;
const int& r = a;
decltype(r) x = a; // const int&
auto y = r; // int (copia)
decltype(a + 2.5) z; // doubleExemplos
Use decltype to get the type of the sum.
Use decltype para obter o tipo da soma.
decltype keeps the reference, auto drops it.
decltype mantém a referência, auto a descarta.
Cuidado
decltype(x) e decltype((x)) são diferentes: com parênteses extras, o nome de uma variável vira referência a ela.
Sinônimos
tipo de uma expressão
Origem
Contração de declared type, tipo declarado.