vijay wrote:
Fowllowing is the experpts of a C++ documents associated with Itanium ABI
Can some body explain what exctly this mean
"The offset of a non-virtual base subobject in the full object containing it
must be representable by a 56-bit signed integer (due to RTTI
implementation). This implies a practical limit of 2**55 bytes on the size
of a class.
...
It means what it says. It means that in order to support some
RTTI-related functionality (like, for example, 'dynamic_cast' downcasts)
in multiple-inheritance object hierarchy the program needs to know and
be able to store offsets of base class subobjects of virtually any
object at run time. In the above implementation this information happens
to be stored in 56-bit signed integer field with +-2**55 value range.
Under this circumstances the implementation is forced to use 2**55 as
object size limit, since permitting base class subobjects larger than
2**55 bytes may easily result in offset values out of +-2**55 range.
--
Best regards,
Andrey Tarasevich
Brainbench C and C++ Programming MVP