I don't believe the standard makes that guarantee - an implementation is free to add padding at the end of Bar
.
But it's hard to see why any real implementation would add padding at the end of Bar
but not Foo
. Unless, say, Foo
was explicitly given some non-default alignment (e.g. byte aligned); Bar
would then be padded to the default alignment.