__has_trivial_destructor

De RAD Studio
Aller à : navigation, rechercher

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


Catégorie

Fonctions trait de type

Syntaxe

bool __has_trivial_destructor (typename T )

Renvoie true si et seulement si T a un destructeur trivial.

Erreur si T est un type incomplet.

Remarque : La définition des notes 20.4.4.3 comporte un type T qui a un destructeur trivial si T est inclus dans la liste suivante :

  • un type scalaire (ou array thereof)
  • un type scalaire (ou array thereof)
  • un tableau de type classe avec un destructeur trivial
  • un tableau de type classe avec un destructeur trivial
  • un type classe avec un destructeur trivial

Selon la section 12.4, p 3 du Working Draft, un destructeur 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
  • toutes les classes de base directes de sa classe ont un destructeur trivial
  • pour tous les membres de données non-statiques de sa classe qui sont de type classe (ou array thereof), chaque classe a un destructeur trivial.

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

Interaction Ox false si le destructeur est défini comme supprimé.

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

Voir aussi