Partager via


has_trivial_copy, classe

Teste si le type possède un constructeur de copie triviale.

template<class Ty>
    struct has_trivial_copy;

Paramètres

  • Ty
    Type à interroger.

Notes

Une instance de l'attribut de type contient la valeur vrai si le type Ty est une classe qui possède un constructeur de copie trivial, sinon il contient false.

Un constructeur de copie d'une classe Ty est trivial si :

il est implicitement déclaré

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 de copie triviaux.

les classes de toutes les données de membre non statiques de type de classe ont des constructeurs de copie triviaux.

les classes de toutes les données de membre non statiques de type tableau de classe ont des constructeurs de copie triviaux.

Exemple

 

// std_tr1__type_traits__has_trivial_copy.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_copy<trivial> == " << std::boolalpha 
        << std::has_trivial_copy<trivial>::value << std::endl; 
    std::cout << "has_trivial_copy<throws> == " << std::boolalpha 
        << std::has_trivial_copy<throws>::value << std::endl; 
 
    return (0); 
    } 
 
  

Configuration requise

En-tête : <type_traits>

Espace de noms : std

Voir aussi

Référence

<type_traits>

has_nothrow_copy, classe