Przebiegłem poniżej z g++ -std=c++0x pod_test.cpp
na g ++ 4.6.2 (mingw). Wystąpił błąd na A4. Dlaczego nie ma formatu A4 POD?Dlaczego nie jest to typ 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(){}
Istnieje maksymalnie jedna klasa bazowa z niestatycznymi elementami danych. We wszystkich przykładach. W jaki sposób stosuje się tę zasadę? – Mordachai
"nie ma niestatycznych elementów danych w najbardziej pochodnej klasie ** i ** najwyżej jednej klasy bazowej z niestatycznymi elementami danych". "A4" ma niestatyczne elementy danych. –
Myślę, że powiązałem to z tobą. Pamiętam jego sekty 7 -lookups-ok 9.0.7. Akceptuj, kiedy mogę. Przeoczyłem "przed" lub. Nic dziwnego, że "albo" nie miało sensu. –