: Undefined behavior may be expected when
this document omits any explicit
definition of behavior or when a program uses an erroneous construct or erroneous data
.  Permissible undefined behavior ranges
from ignoring the situation completely with unpredictable results, to
behaving during translation or program execution in a documented manner
characteristic of the environment (with or without the issuance of a
diagnostic message), to terminating a translation or execution (with the
issuance of a diagnostic message)
.  Many erroneous program constructs do
not engender undefined behavior; they are required to be diagnosed
.  Evaluation of a constant expression never exhibits behavior explicitly
specified as undefined in 
[intro] through 
[cpp] of this document (
[expr.const])
. — 
end note