__has_trivial_destructor
Nach oben zu Typ-Trait-Funktionen (C++11) - Index
Kategorie
Typ-Trait-Funktionen
Syntax
bool __has_trivial_destructor (typename T )
Gibt true zurück, wenn und nur wenn T ein trivialer Destruktor ist.
Fehler, wenn T ein unvollständiger Typ ist.
Hinweis: Definition aus den Hinweisen unter 20.4.4.3: ein Typ T hat einen trivialen Destruktor, wenn T entweder:
- ein skalarer Typ (oder ein Array davon) oder
- ein Klassentyp-Array mit einem trivialen Destruktor oder
- ein Klassentyp mit einem trivialen Destruktor ist.
Gemäß dem Abschnitt 12.4, p 3 des Working Draft ist ein Destruktor für die Klasse X trivial, wenn:
- er nicht vom Benutzer bereitgestellt wurde
- die Klasse X keine virtuellen Funktionen hat
- die Klasse X keine virtuellen Basisklassen hat
- alle direkten Basisklassen seiner Klasse triviale Destruktoren haben
- jede Klasse einen trivialen Destruktor für alle nicht-statischen Daten-Member seiner Klasse hat, die Klassentypen (oder ein Array davon) sind.
Ein Destruktor ist nicht vom Benutzer bereitgestellt, wenn er implizit deklariert oder inline als = default; definiert wurde.
Ox-Interaktion false, wenn der Destruktor als gelöscht definiert ist.
Ox-Interaktion mit Standardfunktionsdefinitionen.