10 May
2016
10 May
'16
11:54 p.m.
[STL]
We guarantee bincompat between Updates. We break it between major versions.
[Tim Blechmann]
doesn't the compile error tells us that this is not the case here?
This is a special case, upholding the general principle. Because we don't want to silently break binary compatibility, when we're forced with a choice between doing that, or silent bad codegen (since we can't know whether the user is manually aligning, and almost nobody does), we avoid both by emitting a compiler error. This requires user action, either to avoid the scenario (e.g. by increasing the alignment of their type), or to tell the STL "go ahead and activate the fix, I'm not mixing layouts". I tried to explain this in the static_assert to the best of my ability. STL