Partager via


is_pod, classe

Teste si le type est COSSE.

template<class Ty>
    struct is_pod;

Paramètres

  • Ty
    Le type à la requête.

Notes

is_pod<Ty>::value est true si le type est Ty les anciennes données ordinaires (POD). Sinon il s'agit false.

Les types, les types énumération, les types pointeurs, et le pointeur d'arithmétique des types de membre sont COSSE.

Une version cv-qualifiée d'un type de COSSE est elle-même un type de COSSE.

Tableau de COSSE est lui-même COSSE.

Une structure ou une union, toutes les données de membre non statique sont COSSE, est lui-même COSSE si elle a :

  • Les constructeurs par déclarés.

  • Membres de données statiques non pas ou privées protégées.

  • Aucune classe de base

  • Les fonctions virtuels.

  • Aucune donnée membre non statique de type référence.

  • Aucun opérateur d'assignation de sauvegarde défini par l'utilisateur.

  • Un destructeur défini par l'utilisateur.

Par conséquent, vous pouvez de manière récursive générer les structs et les tables de COSSE qui contiennent les structs et des tables de COSSE.

Exemple

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

Configuration requise

En-tête : <type_traits>

Espace de noms : std

Voir aussi

Référence

<type_traits>

Autres ressources

<type_traits> membres