Рассмотрим следующую структуру:
class Foo {
int a;
};
Тестирование в g++, я получаю это sizeof(Foo) == 4
, но гарантируется ли это стандартом? Разрешил ли компилятор заметить, что a
является неиспользуемым частным полем и удаляет его из представления класса в памяти (что приводит к меньшему размеру)?
Я не ожидаю, что какие-либо компиляторы действительно сделают такую оптимизацию, но этот вопрос возник в обсуждении вопросов, связанных с языком, поэтому теперь мне интересно.