C++ POD、Trivial、Standard Layout クラスに関するすばらしい記事を読んで いましたが、標準レイアウトについて明確に理解していないプロパティの 1 つは次のとおりです。
A standard layout has no base classes of the same type as the first
non-static data member
したがって、以下は基本クラスと同じ最初のメンバーを持つため、標準レイアウトにはなりません。
struct NonStandardLayout3 : StandardLayout1 {
StandardLayout1 x; // first member cannot be of the same type as base
};
しかし、パフォーマンスとプロパティの観点から、上記の構造体はどのように異なるのですか
struct StandardLayout5 : StandardLayout1 {
int x;
StandardLayout1 y; // can have members of base type if they're not the first
};
これは、この上のものの修正です。