Created on 2008-07-13.00:00:00 last changed 199 months ago
According to 6.9.1 [intro.execution] paragraph 14, “sequenced before” is a relation between “evaluations.” However, 6.9.3.3 [basic.start.dynamic] paragraph 3 says,
If the completion of the initialization of a non-local object with static storage duration is sequenced before a call to std::atexit (see <cstdlib>, 17.5 [support.start.term]), the call to the function passed to std::atexit is sequenced before the call to the destructor for the object. If a call to std::atexit is sequenced before the completion of the initialization of a non-local object with static storage duration, the call to the destructor for the object is sequenced before the call to the function passed to std::atexit. If a call to std::atexit is sequenced before another call to std::atexit, the call to the function passed to the second std::atexit call is sequenced before the call to the function passed to the first std::atexit call.
Except for the calls to std::atexit, these events do not correspond to “evaluation” of expressions that appear in the program. If the “sequenced before” relation is to be applied to them, a more comprehensive definition is needed.
History | |||
---|---|---|---|
Date | User | Action | Args |
2008-07-13 00:00:00 | admin | create |