Dlaczego pełna optymalizacja klas podstawowych (EBO) nie jest w pełni zastosowana w programie Visual C++?Dlaczego pusta optymalizacja klasy podstawowej nie działa?
Jeśli mam wiele klas bazowych, czy jest jakiś sposób, aby pomóc kompilatorowi w dokonaniu tej optymalizacji?
#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
Czy kompilujesz w trybie debugowania? – jpm
@jpm: Nie, jest w trybie zwolnienia. – Mehrdad
Każda optymalizacja, która wpływa na układ pamięci, powinna być wykonana konsekwentnie we wszystkich jednostkach kompilacji. Musiałoby to być albo obowiązkowe, albo wcale - w sposób podobny do tego, dlaczego kompilator nie może ponownie uporządkować elementów struct/class. – Mysticial