ExpertiDict

C++ · Avançado · Inglês · Técnico

type traits

taɪp tɹeɪtssubstantivo

Biblioteca <type_traits> de templates que consultam ou transformam propriedades de tipos em tempo de compilação, como is_integral, is_same e remove_reference. Cada trait oferece ::value ou ::type.

Onde usar

Base de código genérico, if constexpr e concepts. Os sufixos _v e _t, do C++17 e do C++14, evitam escrever ::value e typename ::type.

Em código

static_assert(std::is_integral_v<int>);
static_assert(!std::is_integral_v<double>);
static_assert(std::is_same_v<
    std::remove_reference_t<int&>, int>);
using T = std::decay_t<const int&>;  // int

Exemplos

Check it with is same v instead of comparing by hand.

Verifique com is_same_v em vez de comparar na mão.

remove reference gives the type without the ampersand.

remove_reference dá o tipo sem o e comercial.

Cuidado

Traits só inspecionam tipos em tempo de compilação; não dizem nada sobre valores em tempo de execução.

Sinônimos

traços de tipo

Veja também

Todos os termos de C++