has_trivial_constructor Class
Zkoušky, pokud má typ trivial výchozí konstruktor.
template<class Ty>
struct has_trivial_constructor;
Parametry
- Ty
Typ dotazu.
Poznámky
Instanci typu predikát obsahuje PRAVDA, pokud typ Ty je třída, která má trivial konstruktor, jinak má hodnotu false.
Konstruktor třídy Ty je triviální pokud:
je implicitně deklarovaný výchozí konstruktor.
Třída Ty nemá žádné virtuální funkce
Třída Ty nemá žádné virtuální základů
všechny přímé založí třídy Ty mít konstruktory bezvýznamné.
třídy všech členů dat nestatický typ třídy mít konstruktory bezvýznamné.
třídy všech členů nestatický data pole Typ třídy mít konstruktory bezvýznamné.
Příklad
// 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);
}
Požadavky
Záhlaví: <type_traits>
Obor názvů: std