Partager via


has_trivial_assign Class

Teste si le type a trivial pour assigner.

template<class Ty>
    struct has_trivial_assign;

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 qui contient un opérateur d'assignation de copie simple, sinon elle est false.

Un opérateur d'assignation de copie pour une classe Ty est simple 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 directes de la classe Ty ont les opérateurs d'assignation de copie triviaux

les classes de toutes les données membre non statique de type de classe ont les opérateurs d'assignation de copie triviaux

les classes de toutes les données membre non statique de tableau de type de classe ont les opérateurs d'assignation de copie triviaux

Exemple

 

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

Configuration requise

en-tête : <type_traits>

l'espace de noms : type

Voir aussi

Référence

<type_traits>

has_nothrow_assign Class

Autres ressources

<type_traits> membres