Existe una función / macro en tiempo de compilación para determinar si una estructura C ++ 0x es POD?
Me gustaría tener un C ++ 0x static_assert que prueba si un tipo de estructura dado esVAIN (para evitar que otros programadores lo rompan inadvertidamente con nuevos miembros). es decir
struct A // is a POD type
{
int x,y,z;
}
struct B // is not a POD type (has a nondefault ctor)
{
int x,y,z;
B( int _x, int _y, int _z ) : x(_x), y(_y), z(_z) {}
}
void CompileTimeAsserts()
{
static_assert( is_pod_type( A ) , "This assert should not fire." );
static_assert( is_pod_type( B ) , "This assert will fire and scold whoever added a ctor to the POD type." );
}
¿Hay algún tipo deis_pod_type()
macro o intrínseco que puedo usar aquí? No pude encontrar uno en ningún documento de C ++ 0x, pero, por supuesto, la información de la web sobre 0x sigue siendo bastante fragmentaria.