Freigeben über


has_trivial_assign-Klasse

Testet, ob Typ trivial hat zuzuweisen.

template<class Ty>
    struct has_trivial_assign;

Parameter

  • Ty
    Der Typ in Abfragen.

Hinweise

Eine Instanz der Typprädikatgriffe True, wenn der Typ Ty ist eine Klasse, die einen trivialen Kopierzuweisungsoperator verfügt; andernfalls false hält er an.

Ein Kopierzuweisungsoperator für eine Klasse Ty ist trivial, wenn:

wird sie implizit deklariert

Ty-Klasse hat keine virtuellen Funktionen

Ty-Klasse hat keine virtuellen Basen

alle direkten Basen der Klasse Ty haben triviale Kopierzuweisungsoperatoren

die Klassen aller nicht statischen Datenmembern des Klassentyps haben triviale Kopierzuweisungsoperatoren

die Klassen aller nicht statischen Datenmembers des Typarrays Klasse verfügen triviale Kopierzuweisungsoperatoren

Beispiel

 

// 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); 
    } 
 
  

Anforderungen

Header: <type_traits>

Namespace: std

Siehe auch

Referenz

<type_traits>

has_nothrow_assign-Klasse

Weitere Ressourcen

<type_traits> Member