The rationale for rule 7-2-1 states,
This assertion contains a slight inaccuracy. The relevant section of the ISO C++ (2003) standard, 7.2(9), actually reads,It is unspecified behaviour if the evaluation of an expression with enum underlying type yields a value which does not correspond to one of the enumerators of the enumeration.
(emphasis added by this Poster).An expression of arithmetic or enumeration type can be converted to an enumeration type explicitly. The value is unchanged if it is in the range of enumeration values of the enumeration type; otherwise the resulting enumeration value is unspecified.
Should the MISRA C++ rule, instead, read,
(emphasis, again, added by this Poster)?An expression with enum underlying type shall only have values within the range of the enumerators of the enumeration.