Freigeben über


has_trivial_destructor-Klasse

Testet, ob Typ trivialen Destruktor enthält.

template<class Ty>
    struct has_trivial_destructor;

Parameter

  • Ty
    Der Typ in Abfragen.

Hinweise

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

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

Sie entspricht einem implizit deklarierte Destruktor

alle direkten Basen der Klasse Ty haben triviale Destruktoren

die Klassen aller nicht statischen Datenmembern des Klassentyps haben triviale Destruktoren

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

Beispiel

 

// std_tr1__type_traits__has_trivial_destructor.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) 
        { 
        } 
 
    ~throws() 
        { 
        } 
 
    int val; 
    }; 
 
int main() 
    { 
    std::cout << "has_trivial_destructor<trivial> == " << std::boolalpha 
        << std::has_trivial_destructor<trivial>::value << std::endl; 
    std::cout << "has_trivial_destructor<throws> == " << std::boolalpha 
        << std::has_trivial_destructor<throws>::value << std::endl; 
 
    return (0); 
    } 
 
  

Anforderungen

Header: <type_traits>

Namespace: std

Siehe auch

Referenz

<type_traits>

has_trivial_constructor-Klasse

has_virtual_destructor-Klasse

Weitere Ressourcen

<type_traits> Member