Freigeben über


is_pod-Klasse

Testet, ob Typ POD ist.

template<class Ty>
    struct is_pod;

Parameter

  • Ty
    Der Typ in Abfragen.

Hinweise

is_pod<Ty>::value ist true, wenn der Typ Ty einfache alte Daten (POD) ist. Andernfalls liegt er false.

Arithmetik gibt, Enumerationstypen, Zeigertypen, und ein Zeiger auf die anzuzeigende Membertypen POD sind.

Eine Lebenslauf-qualifizierte Version eines POD-Typs ist selbst ein POD-Typ.

Ein Array von POD ist selbst POD.

Eine Struktur oder Union, deren nicht statische Datenmember alle POD sind, ist auch POD, wenn sie über Folgendes verfügt:

  • Keine Benutzer-deklarierten Konstruktoren.

  • Nicht private oder geschützte nicht statische Datenmember.

  • Keine Basisklassen

  • Keine virtuellen Funktionen.

  • Keine nicht statischen Datenmembers des Referenztyps.

  • Kein benutzerdefinierter Kopierzuweisungsoperator.

  • Kein benutzerdefinierter Destruktor.

Daher können Sie POD-Strukturen und Arrays rekursiv erstellen, die POD-Strukturen und Arrays 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