Condividi tramite


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

Vedere anche

Riferimenti

<type_traits>

has_nothrow_assign Class

Altre risorse

<type_traits> membri