__has_trivial_assign

De RAD Studio
Aller à : navigation, rechercher

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


Catégorie

Fonctions trait de type

Syntaxe

bool __has_trivial_assign (typename T )

Renvoie true si et seulement si T a un opérateur d'affectation de copie trivial.

Erreur si T est un type incomplet.

La définition de la section 20.4.4.3 du "Working Draft notes" indique qu'un type T a un opérateur d'affectation de copie trivial si T n'est ni const ni un type référence, et T est un des types suivants :

  • un type scalaire (ou array thereof)
  • un type classe avec un opérateur d'affectation de copie trivial

Selon la section 21.8 p11 du "Working Draft", un opérateur d'affectation de copie pour la classe X est trivial si :

  • il n'est pas fourni par l'utilisateur
  • 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 opérateur d'affectation 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 opérateur d'affectation de copie trivial ;

Un opérateur d'affectation 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 l'opérateur d'affectation de copie est définie comme supprimé.

Interaction Ox false si l'opérateur d'affectation de copie est définie comme supprimé.

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