has_trivial_destructor-Klasse
Testet, ob Typ trivialen Destruktor enthält.
template<class Ty>
struct has_trivial_destructor;
Parameter
- Ty
Der Typ in Abfragen.
Hinweise
Eine Instanz der Typprädikatgriffe True, wenn der Typ Ty ist eine Klasse, die einen trivialen Destruktor enthält; andernfalls false hält er an.
Ein Destruktor für eine Klasse Ty ist trivial, wenn:
Sie entspricht einem implizit deklarierte Destruktor
alle direkten Basen der Klasse Ty haben triviale Destruktoren
die Klassen aller nicht statischen Datenmembern des Klassentyps haben triviale Destruktoren
die Klassen aller nicht statischen Datenmembers des Typarrays Klasse verfügen triviale Destruktoren
Beispiel
// std_tr1__type_traits__has_trivial_destructor.cpp
// compile with: /EHsc
#include <type_traits>
#include <iostream>
struct trivial
{
int val;
};
struct throws
{
throws() throw(int)
{
}
throws(const throws&) throw(int)
{
}
throws& operator=(const throws&) throw(int)
{
}
~throws()
{
}
int val;
};
int main()
{
std::cout << "has_trivial_destructor<trivial> == " << std::boolalpha
<< std::has_trivial_destructor<trivial>::value << std::endl;
std::cout << "has_trivial_destructor<throws> == " << std::boolalpha
<< std::has_trivial_destructor<throws>::value << std::endl;
return (0);
}
Anforderungen
Header: <type_traits>
Namespace: std
Siehe auch
Referenz
has_trivial_constructor-Klasse