__has_trivial_default_constructor

Aus Appmethod Topics
Wechseln zu: Navigation, Suche

Nach oben zu Typ-Trait-Funktionen (C++0x) - Index


Kategorie

Typ-Trait-Funktionen

Syntax

bool __has_trivial_default_constructor (typename T )

Gibt true zurück, wenn und nur wenn T ein trivialer Standardkonstruktor ist.

Fehler, wenn T ein unvollständiger Typ ist.

False (aber wohlgeformt), wenn ein Klassentyp keinen Standardkonstruktor hat.

Gemäß der Definition im Abschnitt 20.4.4.3 der Working Draft-Hinweise hat ein Typ T einen trivialen Kopierzuweisungsoperator, wenn:

  • ein skalarer Typ (oder ein Array davon) ist oder
  • er ein Klassentyp-Array mit einem trivialen Standardkonstruktor ist oder
  • er ein Klassentyp mit einem trivialen Konstruktor ist.

false für Referenztypen.

Gemäß dem Abschnitt 21.1 S. 5 des Working Draft ist ein Standardkonstruktor trivial, wenn:

  • er nicht vom Benutzer bereitgestellt wurde
  • seine Klasse keine virtuellen Funktionen hat
  • seine Klasse keine virtuellen Basisklassen hat
  • jede direkte Basisklasse von X einen trivialen Kopierzuweisungsoperator hat
  • alle direkten Basisklassen seiner Klasse triviale Standardkonstruktoren haben
  • jede Klasse einen trivialen Standardkonstruktor für alle nicht-statischen Daten-Member seiner Klasse hat, die Klassentypen (oder ein Array davon) sind.

Ein Standardkonstruktor ist nicht vom Benutzer bereitgestellt, wenn er implizit deklariert oder inline als = default; definiert wurde.

Ox-Interaktion, wenn der Kopierzuweisungsoperator als gelöscht definiert ist.

Ox-Interaktion false, wenn der Standardkonstruktor als gelöscht definiert ist.

Ox-Interaktion mit Standardfunktionsdefinitionen.

Siehe auch