has_trivial_constructor Class
Prüft, ob Typ trivialen Standardkonstruktor verfügt.
template<class Ty>
struct has_trivial_constructor;
Parameter
- Ty
Der abzufragende Typ.
Hinweise
Eine Instanz des Typs prädikats behält True an, wenn der Typ Ty eine Klasse handelt, die einen trivialen Standardkonstruktor verfügt, andernfalls wird er false.
Ein Konstruktor für eine Klasse Ty trivial ist, wenn:
Es ist ein deklarierter Standardkonstruktor implizit
Ty die Klasse keine virtuellen Funktionen
Ty die Klasse keine virtuellen Basen
Basistyp der alle direkten Konstruktoren triviale haben Ty-Klasse
Alle Klassen nicht statischen Datenmembern des Klassentyps sind einfache Konstruktoren
Alle Klassen nicht statischen Datenmembern vom Typ von Arrays Klasse verfügen über einfache 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