__has_trivial_default_constructor
Nach oben zu Typ-Trait-Funktionen (C++11) - 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.