36 lines · cpp
1struct Empty {};2 3namespace basic {4struct Foo {5 [[no_unique_address]] Empty a;6};7} // namespace basic8 9namespace bases {10struct A {11 long c, d;12};13 14struct B {15 [[no_unique_address]] Empty x;16};17 18struct C {19 [[no_unique_address]] Empty x;20};21 22struct Foo : B, A, C {};23struct Bar : B, C, A {};24} // namespace bases25 26int main() {27 basic::Foo b1;28 bases::Foo b2;29 bases::Bar b3;30 b2.c = 1;31 b2.d = 2;32 b3.c = 5;33 b3.d = 6;34 return 0;35}36