Partager via


<type_traits>

Définit des modèles offrant des constantes de compilation qui fournissent des informations sur les propriétés de leurs arguments de type.

#include <type_traits>

Notes

Un prédicat de type est un modèle qui prend un ou deux arguments de type. Quand un prédicat de typecontient la valeur true, il est publiquement dérivé, directement ou indirectement, de true_type, typedef. Quand un prédicat de typecontient la valeur false, il est publiquement dérivé, directement ou indirectement, de false_type, typedef.

Un modificateur de type est un modèle qui prend un ou plusieurs arguments de modèle et possède un seul membre, comme suit :

  • typedef modified-type type;

Une requête de type est un modèle qui prend un ou plusieurs arguments de modèle. Une requête de type est publiquement dérivée, directement ou indirectement, de integral_constant<std::size_t, value>. Elle contient la valeur qui est passée comme argument value.

Modèles d'alias

Les modèles d'alias pour typename foo<T>::type sont fournis, où « foo » est le nom de classe du modèle. Par exemple, add_const a le modèle d'alias pour son type add_const_t, défini comme suit :

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

Crée un type const à partir d'un type.

add_cv

Crée un type const/volatile à partir d'un type.

add_pointer

Crée un pointeur vers un type à partir d'un type.

add_reference

Crée une référence vers un type à partir d'un type.

add_volatile

Crée un type volatile à partir d'un type.

aligned_storage

Crée un type correctement aligné.

alignment_of

Obtient l'alignement de type.

common_type

Crée une instance du type commun de deux types.

conditional

Crée une instance du type commun de deux types.

decay

Crée un type non-référence, non const ou non volatile, ou crée un pointeur vers un type.

enable_if

Crée une instance d'un type, ou un type indéfini.

extent

Obtient une dimension de tableau.

has_nothrow_assign

Teste si le type ne lève pas d'exception lors de l'assignation.

has_nothrow_constructor

Teste si le type ne lève pas d'exception lors de la construction par défaut.

has_nothrow_copy

Teste si le type ne lève pas d'exception lors de la construction de copie.

has_nothrow_copy_constructor

Teste si le type ne lève pas d'exception lors de la construction de copie.

has_nothrow_default_constructor

Teste si le type ne lève pas d'exception lors de la construction par défaut.

has_trivial_assign

Teste si le type a une assignation triviale.

has_trivial_constructor

Teste si le type a un constructeur par défaut trivial.

has_trivial_copy

Teste si le type a un constructeur de copie trivial.

has_trivial_copy_constructor

Teste si le type a un constructeur de copie trivial.

has_trivial_default_constructor

Teste si le type a un constructeur par défaut trivial.

has_trivial_destructor

Teste si le type a un destructeur trivial.

has_virtual_destructor

Teste si le type a un destructeur virtuel.

is_abstract

Teste si le type est une classe abstraite.

is_arithmetic

Teste si le type est arithmétique.

is_array

Teste si le type est un tableau.

is_base_of

Teste si un type est la base d'un autre.

is_class

Teste si le type est une classe.

is_compound

Teste si le type n'est pas scalaire.

is_const

Teste si le type est const.

is_convertible

Teste si un type est convertible en un autre.

is_empty

Teste si le type est une classe vide.

is_enum

Teste si le type est une énumération.

is_floating_point

Teste si le type est à virgule flottante.

is_function

Teste si le type est un type de fonction.

is_fundamental

Teste si le type est void ou arithmétique.

is_integral

Teste si le type est intégral.

is_lvalue_reference

Teste si le type est une référence lvalue.

is_member_function_pointer

Teste si le type est un pointeur vers une fonction membre.

is_member_object_pointer

Teste si le type est un pointeur vers un objet membre.

is_member_pointer

Teste si le type est un pointeur vers un membre.

is_object

Teste si le type est un type d'objet.

is_pod

Teste si le type est POD.

is_pointer

Teste si le type est un pointeur.

is_polymorphic

Teste si le type a une fonction virtuelle.

is_reference

Teste si le type est une référence.

is_rvalue_reference

Teste si le type est une référence rvalue.

is_same

Teste si deux types sont identiques.

is_scalar

Teste si le type est scalaire.

is_signed

Teste si le type est un entier signé.

is_standard_layout

Teste si le type est une disposition standard.

is_union

Teste si le type est une union.

is_unsigned

Teste si le type est un entier non signé.

is_void

Teste si le type est void.

is_volatile

Teste si le type est volatile.

make_signed

Rend le type ou le plus petit type signé supérieur ou égal en taille au type.

make_unsigned

Rend le type ou le plus petit type non signé supérieur ou égal en taille au type.

rank

Obtient le nombre de dimensions de tableau.

remove_all_extents

Crée un type non-tableau à partir d'un type tableau.

remove_const

Crée un type non const à partir d'un type.

remove_cv

Crée un type non volatile/non const à partir d'un type.

remove_extent

Crée un type d'élément à partir d'un type tableau.

remove_pointer

Crée un type à partir d'un pointeur vers un type.

remove_reference

Crée un type non-référence à partir d'un type.

remove_volatile

Crée un type non volatile à partir d'un type.

integral_constant

Crée une constante intégrale à partir d'un type et d'une valeur.

Typedef

false_type

Contient une constante intégrale avec la valeur false.

true_type

Contient une constante intégrale avec la valeur true.

Voir aussi

Référence

<functional>