has_trivial_assign Class
Test se il tipo presenta semplice assegnare.
template<class Ty>
struct has_trivial_assign;
Parametri
- Ty
Il tipo da eseguire la query.
Note
Un'istanza del predicato del tipo per poter se il tipo Ty è una classe che dispone di un operatore di assegnazione di copia semplice, è contenuta in caso contrario false.
Un operatore di assegnazione di copia per una classe Ty è semplice se:
in modo implicito viene dichiarato
la classe Ty non dispone di funzioni virtuali
la classe Ty non ha basi virtuali
tutte le basi dirette della classe Ty includono operatori di assegnazione di copia irrilevanti
le classi di tutti i membri dati non statico di tipo classe includono operatori di assegnazione di copia irrilevanti
le classi di tutti i membri dati non statico di matrice di tipi di classe includono operatori di assegnazione di copia irrilevanti
Esempio
// 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);
}
Requisiti
intestazione: <type_traits>
Spazio dei nomi: deviazione standard