The standard itself defines all implementation cases defined during implementation, the draft C ++ standard has an Index of implementation-defined behavior at the end that provides topics and on which page this topic is solved, for example:
additional formats for time_get :: do_get_date, 689
76
alignment of additional values, 76
In fact, each compiler must document all the behavior defined by the implementation and how it is associated with them. For example, here is gcc C ++ Section with implementation definition and gcc C Implementation-defined behavior . As far as I know, the C ++ standard is not like a draft of the C99 standard, which gives a link to unspecified or undefined behavior. Therefore, you will have to resort to searching the document for undefined and unspecified to find all instances.
The draft C99 standard provides a reference for undefined, undefined, and implementation-specific behavior in Annex J.1 , J.2 and J.3 respectively.
It is important to note that undefined behavior can be defined as defined in the implementation, but they need to document it. In your specific example, it looks like you are violating the rules of strict alias rules , but your alternative suggestion to use the pint function is precisely defined with C89.
source share