Код: Выделить всё
#include
struct Empty {};
struct A : public Empty {
int x;
};
struct B {
[[no_unique_address]] Empty e;
int x;
};
static_assert (sizeof(A) == sizeof(int));
static_assert (sizeof(B) == sizeof(int));
static_assert(std::has_unique_object_representations_v);
static_assert(std::has_unique_object_representations_v);
Это ошибка компилятора или есть причина такой разницы?
Подробнее здесь: https://stackoverflow.com/questions/641 ... subobjects
Мобильная версия