空の基本クラス最適化(EBO)がVisual C++で完全に適用されないのはなぜですか?空の基本クラスの最適化が機能しないのはなぜですか?
私が基本クラスをたくさん持っている場合、コンパイラがこの最適化を行うのに役立つ方法はありますか?
#include <iostream>
struct T1 { };
struct T2 { };
struct T3 { };
struct T4 { };
struct T5 { };
struct T6 { };
struct Test : T1, T2, T3, T4, T5, T6 { };
int main() { std::cout << sizeof(Test); } // Prints 5
デバッグモードでコンパイルしていますか? – jpm
@jpm:いいえ、リリースモードです。 – Mehrdad
メモリレイアウトに影響する最適化は、すべてのコンパイル単位で一貫して実行する必要があります。したがって、コンパイラが構造体/クラスのメンバーを再注文できない理由と同様に、これは必須であるか、まったく同じでなければなりません。 – Mysticial