has_trivial_constructor, classe
Teste si le type possède un constructeur trivial par défaut.
template<class Ty>
struct has_trivial_constructor;
Paramètres
- Ty
Le type à requêter.
Notes
Une instance de l'attribut de type contient la valeur vrai si le type Ty est une classe qui possède un constructeur trivial, sinon il contient faux.
Un constructeur de la classe Ty est trivial si :
il s'agit d'un constructeur par défaut déclaré implicitement
la classe Ty n'a aucune fonction virtuelle
la classe Ty n'a aucune base virtuelle
toutes les bases directe de la classe Ty ont des constructeurs triviaux.
les classes de toutes les données de membre non statiques de type de classe ont des constructeurs triviaux.
les classes de toutes les données de membre non statiques de type tableau de classe ont 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>
Espace de noms : std
Voir aussi
Référence
has_nothrow_constructor, classe
has_trivial_destructor, classe