has_trivial_assign, classe
Teste si le type est triviale à affecter.
template<class Ty>
struct has_trivial_assign;
Paramètres
- Ty
Le type à la requête.
Notes
Une instance de l'attribut de type contient la valeur true si le type Ty est une classe qui contient un opérateur d'assignation d'envoi triviale, sinon elle contient FALSE.
Un opérateur d'assignation de copie d'une classe Ty est triviale si :
elle est implicitement déclarée
la classe Ty n'a aucune fonction virtuelle
la classe Ty n'a aucune base virtuelle
toutes les bases directe de la classe Ty des opérateurs d'affectation de copie insignifiants
les classes de toutes les données de membre non statique de type de classe des opérateurs d'affectation de copie insignifiants
les classes de toutes les données de membre non statique de choix du type de classe des opérateurs d'affectation de copie insignifiants
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>
Espace de noms : std