has_trivial_constructor-Klasse
Testet, ob Typ trivialen Standardkonstruktor verfügt.
template<class Ty>
struct has_trivial_constructor;
Parameter
- Ty
Der Typ in Abfragen.
Hinweise
Eine Instanz der Typprädikatgriffe True, wenn der Typ Ty ist eine Klasse, die einen trivialen Konstruktor verfügt; andernfalls false hält er an.
Ein Konstruktor für eine Klasse Ty ist trivial, wenn:
Sie entspricht einem implizit deklarierte Standardkonstruktor
Ty-Klasse hat keine virtuellen Funktionen
Ty-Klasse hat keine virtuellen Basen
alle direkten Basen der Klasse Ty haben triviale Konstruktoren
die Klassen aller nicht statischen Datenmembern des Klassentyps haben triviale Konstruktoren
die Klassen aller nicht statischen Datenmembers des Typarrays Klasse verfügen triviale Konstruktoren
Beispiel
// std_tr1__type_traits__has_trivial_constructor.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)
{
}
int val;
};
int main()
{
std::cout << "has_trivial_constructor<trivial> == " << std::boolalpha
<< std::has_trivial_constructor<trivial>::value << std::endl;
std::cout << "has_trivial_constructor<throws> == " << std::boolalpha
<< std::has_trivial_constructor<throws>::value << std::endl;
return (0);
}
Anforderungen
Header: <type_traits>
Namespace: std
Siehe auch
Referenz
has_nothrow_constructor-Klasse