> I think part of the confusion comes from the 'Size stuff in the RM. RM
> 13.3(43) says that a size _clause_ must be supported if it is a multiple
> of the alignment. But does that mean that 'Size should also _return_
> something that is a multiple of the alignment ? I'd appreciate a comment
> from someone who knows the intent of the standard.
'Size should always return the correct size, and specifying 'Size when
supported must make the item the size specified. The confusion was
two-fold: I didn't know how size of an _object_ is measured, and other
people thought I was talking about size of a _subtype_.
13.3(43) says "should", not "must." It's implementation _advice_.
13.3(50-52) is _advice_ for a certain subset of all objects. RM95
13.3(40) states the semantic requirements for 'Size on an object.
If you can retrieve some older messages in this thread, you will find at
least two messages that, IMHO, should banish all confusion:
1. Although the RM changed the term from "allocation" to "representation",
Tucket Taft stated "As far as I am concerned, there is *no* difference
in <obj>'size between Ada 83 and Ada 95."
2. I had been claiming that "representation" was subjective and vague (I
couldn't find it defined anywhere). Then someone pointed out that
"representation" is defined clearly and in detail in 13.1(7). That
definition easily demolishes any argument that the meaning of 'size
changed between LRM-83 13.7.2(5) and RM-95 13.3(40)