Classe is_pod
Testa se o tipo é VAGEM.
template<class Ty>
struct is_pod;
Parâmetros
- Ty
O tipo para consulte.
Comentários
is_pod<Ty>::value é true se o tipo é Ty dados antigos planos (POD). Se não for false.
Aritmética digita, a enumeração digita, o ponteiro tipos, e o ponteiro para os tipos de membro é VAGEM.
Uma versão CV- qualificada de um tipo de VAGEM é própria um tipo de VAGEM.
Uma matriz de VAGEM é própria VAGEM.
Uma estrutura ou uma união, os valores cujos membros de dados que não sejam estáticos são VAGEM, são próprio VAGEM se tiver:
Nenhum construtores usuário declarados.
Membros de dados não existe ou protegidos de não estático.
Nenhuma classes base.
Nenhuma função virtuais.
Membros de dados de não estático do tipo de referência.
Nenhum operador de atribuição definido pelo usuário de cópia.
Nenhum destruidor definido pelo usuário.
Em virtude disso, você pode recursivamente a criação de estruturas e matrizes de VAGEM que contenham estruturas e matrizes de VAGEM.
Exemplo
// 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);
}
Requisitos
Cabeçalho: <type_traits>
Namespace: std