Overview of Ada 2022
7.3 Object_Size attribute
Object_Size attribute (AI12-0059)
adds the
Object_Size attribute
(see RM
13.3).
Users have been after this since 1983!
S'Object_Size
denotes the size of an object of subtype
S.
It can be specified, but must be specified to a value that the compiler
is able to allocate (usually an entire storage unit for most implementations).
S'Object_Size is an improvement
on S'Size (which cannot be redefined without
breaking existing code). Reading S'Size is
not terribly useful as it just gives the theoretical minimum number of
bits required for a value of a given range, not the number of bits that
the compiler is actually going to allocate to an object of the type.
Specifying S'Size just gives a minimum, the
compiler may allocate more. In contrast, S'Object_Size specifies the
exact size that will be allocated in the absence of the specification
of the representation in some other way (for instance, by specifying
X'Size for an object X
or by specifying the layout of a record component with a record representation
clause).
© 2021, 2022 Jeff Cousins