Занимает ли инициализация переменной-члена и не ссылается на нее/не использует ее дополнительно ОЗУ во время выполнения, или компилятор просто игнорирует эту переменную?
struct Foo {
int var1;
int var2;
Foo() { var1 = 5; std::cout << var1; }
};
В приведенном выше примере член 'var1' получает значение, которое затем отображается в консоли. "Var2", однако, не используется вообще. Поэтому запись его в память во время выполнения будет пустой тратой ресурсов. Принимает ли компилятор такие ситуации на учет и просто игнорирует неиспользуемые переменные, или объект Foo всегда одинакового размера, независимо от того, используются ли его члены?