has_trivial_constructor Class
Teste si le type possède un constructeur trivial par défaut.
template<class Ty>
struct has_trivial_constructor;
Paramètres
- Ty
le type à l'interroger.
Notes
Une instance de l'attribut de type est la valeur true si le type Ty est une classe avec un constructeur trivial, sinon il est false.
Un constructeur pour une classe Ty est simple si :
il s'agit d'un constructeur par défaut implicitement déclaré
la classe Ty n'a aucune fonction virtuelle
la classe Ty n'a aucune base virtuelle
toutes les bases directes de la classe Ty possèdent des constructeurs triviaux
les classes de toutes les données membre non statique de type de classe possèdent des constructeurs triviaux
les classes de toutes les données membre non statique de tableau de type de classe possèdent des constructeurs triviaux
Exemple
// 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);
}
Configuration requise
en-tête : <type_traits>
l'espace de noms : type