Attempts to read or modify an object of class type
typically invoke a constructor
or assignment operator;
such invocations do not themselves constitute accesses,
although they may involve accesses of scalar subobjects.
wait for some condition (other than for the implementation to execute
the execution steps of the thread of execution) to be satisfied before
continuing execution past the blocking operation
⟨function or catch clause⟩ object or reference declared as part of a function declaration or
definition or in the catch clause of an exception handler that
acquires a value on entry to the function or handler
⟨class member function template specialization⟩ signature of the member function template
of which it is a specialization and its template arguments (whether explicitly specified or deduced)
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]).