__has_trivial_copy_constructor

De RAD Studio
Aller à : navigation, rechercher

Remonter à Fonctions trait de type (C++11) - Index


Catégorie

Fonctions trait de type

Syntaxe

bool __has_trivial_copy_constructor ( typename T )

Renvoie true si et seulement si T a un constructeur par défaut trivial.

Erreur si T est un type incomplet.

False (mais bien formé) si un type classe n'a pas de constructeur par défaut

La définition (de la section 20.4.4.3 du "Working Draft notes") a un type T ayant un constructeur de copie trivial s'il est dans la liste :

  • un type scalaire (ou array thereof)
  • un type référence (ou array thereof)
  • un tableau de type classe avec un destructeur trivial
  • un type classe avec un constructeur de copie trivial (12.8)

Selon la section 12.8 p6 du "Working Draft" :

Un constructeur de copie pour la classe X est trivial si :

  • il n'est pas fourni par l'utilisateur (voir la section 8.4)
  • la classe X n'a pas de fonctions virtuelles
  • la classe X n'a pas de classes de base virtuelles
  • chaque classe de base directe de X a un constructeur de copie trivial
  • pour tous les membres de données non-statiques de X qui sont de type classe (ou array thereof), chaque type classe a un constructeur de copie trivial.

Un constructeur de copie n'est pas fourni par l'utilisateur s'il est implicitement déclaré, ou défini inline comme = default;.

Interaction Ox false si le constructeur par défaut est défini comme supprimé.

Interaction Ox avec les définitions de fonction par défaut.

Voir aussi