The C ++ 03 standard has a value <<20>:
If the program tries to access the stored value of the object through a value l other than one of the following types, the behavior is undefined 48) :
- the dynamic type of the object,
- the cv-qualified version of the dynamic type of the object,
- a type that is a signed or unsigned type corresponding to dynamic object type,
- a type that is a signed or unsigned type corresponding to the standard version of the dynamic object type cv,
- a collection or union type that includes one of the above types pov among its members (including, recursively, a member of a sub-aggregate or contained association),
- a type that is (possibly cv-qualified) the base class type of the dynamic type of the object,
- a char or unsigned char type.
Footnote:
48) The purpose of this list is to indicate the circumstances under which the object may or may not be smoothed.
This site also contains sections in other standards.
source
share