Exportar (0) Imprimir
Expandir todo
Expandir Minimizar
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

is_pod (Clase)

Comprueba si el tipo es POD.

template<class Ty>
    struct is_pod;

Ty

El tipo a ver.

is_pod<Ty>::value es true si el tipo Ty es datos heredado (POD) de Plain. Si no es false.

Los tipos aritméticos, tipos de enumeración, los tipos de puntero, y el puntero a los tipos de miembro son POD.

Una versión cv- calificada de un tipo POD es en sí mismo un tipo POD.

Una matriz de POD es en sí mismo POD.

Struct o union, todos los cuyos miembros de datos no estáticos son POD, es en sí mismo POD si tiene:

  • Los constructores usuario- declarados.

  • Ningún private o miembros de datos no estáticos protegidos.

  • Ninguna clase base.

  • Las funciones virtuales.

  • Ningún miembro de datos no estáticos de tipo de referencia.

  • Ningún operador de asignación de copia definido por el usuario.

  • Un constructor definido por el usuario.

Por consiguiente, puede compilar de forma recursiva los structs y matrices de POD que contienen structs y matrices de POD.

// 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); 
    } 
 
== is_podtrivial<> true
==<> de is_podint true
==<> de los is_podthrows false

Encabezado: <type_traits>

Espacio de nombres: std

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft