Ejecuté lo siguiente con g++ -std=c++0x pod_test.cpp
en g ++ 4.6.2 (mingw). Me sale un error en A4. ¿Por qué no es A4 POD?¿Por qué no es este un tipo de POD?
#include <iostream>
#include <new>
#include <cstring>
using namespace std;
struct A {
int a, b;
char c;
};
struct A2 {
short buf[1];
};
struct A3:A {
};
struct A4:A {
short buf[1];
};
static_assert(std::is_pod<A>::value, "Struct must be a POD type");
static_assert(std::is_pod<A2>::value, "Struct must be a POD type");
static_assert(std::is_pod<A3>::value, "Struct must be a POD type");
static_assert(std::is_pod<A4>::value, "Struct must be a POD type");
int main(){}
hay como máximo una clase base con miembros de datos no estáticos. En todos los ejemplos. ¿Cómo se aplica esta regla? – Mordachai
"no tiene miembros de datos no estáticos en la clase más derivada ** y ** como máximo una clase base con miembros de datos no estáticos". 'A4' tiene miembros de datos no estáticos. –
Creo que te he vinculado eso. Recuerdo su secta 7 -lookups- ok 9.0.7. Acepta cuando pueda Pasé por alto el ',' antes del o. No es de extrañar por qué 'cualquiera' no tenía sentido. –