:
struct B { long double d; };
struct D : virtual B { char c; };
When
D is the type of a complete object, it will have a subobject of
type
B, so it must be aligned appropriately for a
long double. If
D appears as a subobject of another object that also has
B
as a virtual base class, the
B subobject might be part of a different
subobject, reducing the alignment requirements on the
D subobject
. —
end example