Freigeben über


is_pod Class

Prüft, ob Typ HÜLSE ist.

template<class Ty>
    struct is_pod;

Parameter

  • Ty
    Der abzufragende Typ.

Hinweise

is_pod<Ty>::value ist true , wenn der Typ Ty einfache alte Daten (HÜLSE) ist.Andernfalls ist es false.

Arithmetische Typen und Enumerationstypen, Zeigertypen und Zeiger auf Member Typen sind HÜLSE.

Eine Lebenslauf-qualifizierte Version eines Typs PODS PODS ist selbst ein.

Ein Array der HÜLSE ist selbst HÜLSE.

Eine Struktur oder Union, alle deren nicht statischen Datenmembern HÜLSE sind, ist auch HÜLSE, wenn sie verfügt:

  • Keine USER-deklarierten Konstruktoren.

  • Nicht private oder geschützte nicht statischen Datenmembern.

  • Es werden keine Basisklassen.

  • Keine virtuelle Funktionen.

  • Keine nicht statischen Datenmembern des Referenztyps.

  • Es wurde kein benutzerdefinierter Kopierzuweisungsoperator.

  • Es wurde kein benutzerdefinierter Destruktor.

Daher können Sie Arrays und - strukturen PODS rekursiv erstellen, die Arrays und - strukturen PODS enthalten.

Beispiel

// std_tr1__type_traits__is_pod.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 << "is_pod<trivial> == " << std::boolalpha 
        << std::is_pod<trivial>::value << std::endl; 
    std::cout << "is_pod<int> == " << std::boolalpha 
        << std::is_pod<int>::value << std::endl; 
    std::cout << "is_pod<throws> == " << std::boolalpha 
        << std::is_pod<throws>::value << std::endl; 
 
    return (0); 
    } 
 
  

Anforderungen

Header: <type_traits>

Namespace: std

Siehe auch

Referenz

<type_traits>

Weitere Ressourcen

<type_traits> Member