In the C++ standard, what is specified to occur when a “shall” requirement is violated?
问题 For example, the famous words (§3.2/1) No translation unit shall contain more than one definition of any variable, function, class type, enumeration type, or template. I believe "shall" requirements are to be interpreted as though they are implicitly followed by "otherwise the program is ill-formed" unless otherwise specified. However, others claim that "shall" instead means "otherwise the behavior is undefined". In every case I've come across in the standard in which a "shall" requirement