ExpertiDict

C++ · Intermediário · Inglês · Técnico

decltype

ˈdɛkl.taɪppalavra-chave

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;  // double

Exemplos

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.

Veja também

Todos os termos de C++