> If the attribute makes any substantive change to S (e.g., changes its 
> size, alignment, etc.) then bad things happen.  For example, the member 
> functions of "S" have expectations about the layout of "S" that are not 
> satisfied if they are called with a "T".  Depending on the attribute and 
> circumstances, we do all manner of bad things, including ICE, generate 
> wrong code, etc.
> 
> For a while now, I've been promising to propose semantics for these 
> constructs.

You might want to take a look at the Ada concept of "freeze point".  That's
one approach to a similar problem.

Reply via email to