Partager via


has_trivial_copy Class

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

template<class Ty>
    struct has_trivial_copy;

Paramètres

  • Ty
    Le type à interroger.

Notes

Une instance du type attribut juge la valeur true si le type Ty est une classe qui possède un constructeur de copie trivial, sinon il juge false.

Un constructeur de copie pour une classe est Ty trivial si :

elle est déclarée implicitement

la classe Ty n'a aucune fonction virtuelle

la classe Ty n'a pas de base virtuelle

toutes les bases directes de la classe Ty ont des constructeurs de copie triviaux

les classes de toutes les données membre non statique de type de classe possèdent des constructeurs de copie triviaux

les classes de toutes les données membre non statique de type tableau de classe possèdent 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>

l'espace de noms : DST

Voir aussi

Référence

<type_traits>

has_nothrow_copy Class