В C ++ проблема проста.
У меня есть 2 класса, один содержит другой как часть его реализации.
struct A
{
void do_something()
{
};
};
struct B
{
A obj_A;
void hello_world()
{
};
};
Теперь проблема в том, что структура B на один байт больше, если A является частью B, когда я делаю sizeof (B) и объект типа B. A на 100% собирается включать только не виртуальные члены (без виртуальных) таблица обязательна) и нет необходимости в проверке типа. Есть ли способ (например, директива компилятора) полностью удалить ненужный байт из B, но при этом получить доступ к функции-члену A через B?
Я могу только предположить, что дополнительный байт - это компилятор, добавляющий символ * к имени А. "A", но любые другие идеи могут быть полезны.