Compartilhar via


<type_traits>

Define modelos que fornecem constantes de tempo de compilação e informações sobre as propriedades dos argumentos de tipo.

#include <type_traits>

Comentários

Um predicado de tipo é um modelo que pega um ou dois argumentos de tipo. Quando um predicado de tipo mantém-se verdadeiro, ele é derivado publicamente, direta ou indiretamente, de Typedef true_type. Quando um predicado de tipo mantém-se falso, ele é derivado publicamente, direta ou indiretamente, de Typedef false_type.

Um modificador de tipo é um modelo que pega um ou mais argumentos de modelo e tem um membro, da seguinte maneira:

  • typedef modified-type type;

Uma consulta de tipo é um modelo que pega um ou mais argumentos de modelo. Uma consulta de tipo é publicamente derivada, direta ou indiretamente, de integral_constant<std::size_t, value>. Ela mantém o valor enviado como argumento value.

Modelos de alias

Os modelos de alias para typename foo<T>::type são fornecidos, em que "foo" é o nome de classe do modelo. Por exemplo, add_const tem o modelo de alias para seu tipo add_const_t, definido como:

template<class T>
    using add_const_t = typename add_const<T>::type;

add_const_t

aligned_storage_t

make_signed_t

remove_pointer_t

add_cv_t

aligned_union_t

make_unsigned_t

remove_reference_t

add_lvalue_reference_t

common_type_t

remove_all_extents_t

remove_volatile_t

add_pointer_t

conditional_t

remove_const_t

result_of_t

add_rvalue_reference_t

decay_t

remove_cv_t

underlying_type_t

add_volatile_t

enable_if_t

remove_extent_t

Classes

add_const

Cria tipo const do tipo.

add_cv

Cria tipo const/volatile do tipo.

add_pointer

Cria o ponteiro para tipo do tipo.

add_reference

Cria referência para tipo do tipo.

add_volatile

Cria tipo volatile do tipo.

aligned_storage

Cria tipo alinhado adequadamente.

alignment_of

Obtém alinhamento do tipo.

common_type

Cria uma instância do tipo comum de dois tipos.

conditional

Cria uma instância do tipo comum de dois tipos.

decay

Cria o tipo de não referência, não constante, não volátil ou cria um ponteiro para o tipo.

enable_if

Cria uma instância de um tipo ou tipo indefinido.

extent

Obtém uma dimensão de matriz.

has_nothrow_assign

Testa se o tipo não é lançado ao atribuir.

has_nothrow_constructor

Testa se o tipo não é lançado na construção padrão.

has_nothrow_copy

Testa se o tipo não é lançado na construção de cópia.

has_nothrow_copy_constructor

Testa se o tipo não é lançado na construção de cópia.

has_nothrow_default_constructor

Testa se o tipo não é lançado na construção padrão.

has_trivial_assign

Testa se o tipo tem uma atribuição trivial.

has_trivial_constructor

Testa se o tipo tem um construtor padrão trivial.

has_trivial_copy

Testa se o tipo tem um construtor de cópia trivial.

has_trivial_copy_constructor

Testa se o tipo tem um construtor de cópia trivial.

has_trivial_default_constructor

Testa se o tipo tem um construtor de cópia padrão.

has_trivial_destructor

Testa se o tipo tem um destruidor trivial.

has_virtual_destructor

Testa se o tipo tem um destruidor virtual.

is_abstract

Testa se o tipo é uma classe abstrata.

is_arithmetic

Testa se o tipo é aritmético.

is_array

Testa se o tipo é uma matriz.

is_base_of

Testa se um tipo é a base de outro.

is_class

Testa se o tipo é uma classe.

is_compound

Testa se o tipo não é escalar.

is_const

Testa se o tipo é constante.

is_convertible

Testa se o tipo pode ser convertido em outro.

is_empty

Testa se o tipo é uma classe vazia.

is_enum

Testa se o tipo é uma enumeração.

is_floating_point

Testa se o tipo é um ponto flutuante.

is_function

Testa se o tipo é um tipo de função.

is_fundamental

Testa se o tipo é void ou aritmético.

is_integral

Testa se o tipo é integral.

is_lvalue_reference

Testa se o tipo é uma referência lvalue.

is_member_function_pointer

Testa se o tipo é um ponteiro para uma função do membro.

is_member_object_pointer

Testa se o tipo é um ponteiro para um objeto do membro.

is_member_pointer

Testa se o tipo é um ponteiro para um membro.

is_object

Testa se o tipo é um tipo de objeto.

is_pod

Testa se o tipo é um POD.

is_pointer

Testa se o tipo é um ponteiro.

is_polymorphic

Testa se o tipo tem uma função virtual.

is_reference

Testa se o tipo é uma referência.

is_rvalue_reference

Testa se o tipo é uma referência rvalue.

is_same

Testa se dois tipos são iguais.

is_scalar

Testa se o tipo é escalar.

is_signed

Testa se o tipo é um inteiro com sinal.

is_standard_layout

Testa se o tipo é um layout padrão.

is_union

Testa se o tipo é uma união.

is_unsigned

Testa se o tipo é um inteiro sem sinal.

is_void

Testa se o tipo é nulo.

is_volatile

Testa se o tipo é volátil.

make_signed

Cria o tipo ou o menor tipo com sinal maior ou igual em tamanho ao tipo.

make_unsigned

Cria o tipo ou o menor tipo sem sinal maior ou igual em tamanho ao tipo.

rank

Obtém o número de dimensões da matriz.

remove_all_extents

Cria o tipo de não matriz do tipo de matriz.

remove_const

Cria o tipo não constante do tipo.

remove_cv

Cria o tipo não const/volátil do tipo.

remove_extent

Cria tipo de elemento do tipo de matriz.

remove_pointer

Cria o tipo de ponteiro para tipo.

remove_reference

Cria o tipo de não referência do tipo.

remove_volatile

Cria o tipo não volátil do tipo.

integral_constant

Cria uma constante integral de tipo e valor.

Typedefs

false_type

Mantém uma constante integral com valor falso.

true_type

Mantém uma constante integral com valor verdadeiro.

Consulte também

Referência

<functional>