Condividi tramite


<type_traits>

Definisce modelli che forniscono costanti in fase di compilazione che offrono informazioni sulle proprietà dei rispettivi argomenti di tipo.

#include <type_traits>

Note

Un predicato di tipo è un modello che accetta uno o due argomenti di tipo. Quando un predicato di tipo include true, è derivato pubblicamente, in modo diretto o indiretto, da Typedef true_type. Quando un predicato di tipo include false, è derivato pubblicamente, in modo diretto o indiretto, da Typedef false_type.

Un modificatore di tipo è un modello che accetta uno o più argomenti di modello e incluse un membro, come indicato di seguito:

  • typedef modified-type type;

Una query di tipo è un modello che accetta uno o due argomenti di modello. Una query di tipo è derivata pubblicamente, in modo diretto o indiretto, da integral_constant<std::size_t, value>. Include il valore passato come argomento value.

Modelli di alias

Sono forniti modelli di alias per typename foo<T>::type, dove "foo" corrisponde al nome della classe di modelli. Ad esempio, add_const include il modello di alias per il rispettivo tipo add_const_t, definito come:

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

Classi

add_const

Crea il tipo const dal tipo.

add_cv

Crea il tipo const/volatile dal tipo.

add_pointer

Crea un puntatore al tipo dal tipo.

add_reference

Crea un riferimento al tipo dal tipo.

add_volatile

Crea un tipo volatile dal tipo.

aligned_storage

Crea un tipo allineato in modo adeguato.

alignment_of

Ottiene l'allineamento del tipo.

common_type

Crea un'istanza del tipo comune di due tipi.

conditional

Crea un'istanza del tipo comune di due tipi.

decay

Crea un tipo di non riferimento, non constante o non volatile oppure crea un puntatore al tipo.

enable_if

Crea un'istanza di un tipo o un tipo non definito.

extent

Ottiene una dimensione di matrice.

has_nothrow_assign

Verifica se il tipo non genera eccezioni in fase di assegnazione.

has_nothrow_constructor

Verifica se il tipo non genera eccezioni in fase di costruzione predefinita.

has_nothrow_copy

Verifica se il tipo non genera eccezioni in fase di costruzione di copia.

has_nothrow_copy_constructor

Verifica se il tipo non genera eccezioni in fase di costruzione di copia.

has_nothrow_default_constructor

Verifica se il tipo non genera eccezioni in fase di costruzione predefinita.

has_trivial_assign

Verifica se il tipo ha un'assegnazione semplice.

has_trivial_constructor

Verifica se il tipo ha un costruttore predefinito semplice.

has_trivial_copy

Verifica se il tipo ha un costruttore di copia semplice.

has_trivial_copy_constructor

Verifica se il tipo ha un costruttore di copia semplice.

has_trivial_default_constructor

Verifica se il tipo ha un costruttore predefinito semplice.

has_trivial_destructor

Verifica se il tipo ha un distruttore semplice.

has_virtual_destructor

Verifica se il tipo ha un distruttore virtuale.

is_abstract

Verifica se il tipo è una classe astratta.

is_arithmetic

Verifica se il tipo è aritmetico.

is_array

Verifica se il tipo è una matrice.

is_base_of

Verifica se un tipo è la base di un altro tipo.

is_class

Verifica se il tipo è una classe.

is_compound

Verifica se il tipo non è scalare.

is_const

Verifica se il tipo è costante.

is_convertible

Verifica se il tipo è convertibile in un altro tipo.

is_empty

Verifica se il tipo è una classe vuota.

is_enum

Verifica se il tipo è un'enumerazione.

is_floating_point

Verifica se il tipo è a virgola mobile.

is_function

Verifica se il tipo è un tipo di funzione.

is_fundamental

Verifica se il tipo è void o aritmetico.

is_integral

Verifica se il tipo è integrale.

is_lvalue_reference

Verifica se il tipo è un riferimento lvalue.

is_member_function_pointer

Verifica se il tipo è un puntatore a una funzione membro.

is_member_object_pointer

Verifica se il tipo è un puntatore a un oggetto membro.

is_member_pointer

Verifica se il tipo è un puntatore a un membro.

is_object

Verifica se il tipo è un tipo di oggetto.

is_pod

Verifica se il tipo è un POD.

is_pointer

Verifica se il tipo è un puntatore.

is_polymorphic

Verifica se il tipo ha una funzione virtuale.

is_reference

Verifica se il tipo è un riferimento.

is_rvalue_reference

Verifica se il tipo è un riferimento rvalue.

is_same

Verifica se due tipi sono uguali.

is_scalar

Verifica se il tipo è scalare.

is_signed

Verifica se il tipo è un Integer firmato.

is_standard_layout

Verifica se il tipo è un layout standard.

is_union

Verifica se il tipo è un'unione.

is_unsigned

Verifica se il tipo è Unsigned Integer.

is_void

Verifica se il tipo è void.

is_volatile

Verifica se il tipo è volatile.

make_signed

Rende la dimensione del tipo o del tipo firmato più piccolo superiore o uguale a quella del tipo.

make_unsigned

Rende la dimensione del tipo o del tipo non firmato più piccolo superiore o uguale a quella del tipo.

rank

Ottiene il numero di dimensioni della matrice.

remove_all_extents

Crea un tipo non matrice da un tipo matrice.

remove_const

Crea un tipo non costante dal tipo.

remove_cv

Crea un tipo non costante/volatile dal tipo.

remove_extent

Crea un tipo di elemento da un tipo di matrice.

remove_pointer

Crea un tipo da un puntatore al tipo.

remove_reference

Crea un tipo di non riferimento dal tipo.

remove_volatile

Crea un tipo non volatile dal tipo.

integral_constant

Crea una costante integrale dal tipo e dal valore.

Definizioni typedef

false_type

Include la costante integrale con valore false.

true_type

Include la costante integrale con valore true.

Vedere anche

Riferimenti

<functional>