Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais
Nous recommandons d’utiliser Visual Studio 2017

has_trivial_constructor, classe

Teste si le type possède un constructeur trivial par défaut.

template<class Ty>
    struct has_trivial_constructor;

Ty

Le type à requêter.

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.

 

// 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); 
    } 
 
has_trivial_constructor<trivial> == vrai
has_trivial_constructor<throws> == faux

En-tête : <type_traits>

Espace de noms : std

Afficher: