Created on 2001-04-11.00:00:00 last changed 171 months ago
Rationale:
There is definitely no contradiction between the core and library clauses; nothing in the core clauses says that stack unwinding happens after terminate is called. 18.7.3.3p2 does not say anything about when terminate() is called; it merely specifies which terminate_handler is used.
The standard appears to contradict itself about whether the stack is unwound when the implementation calls terminate().
From 18.7.3.3p2:
Calls the terminate_handler function in effect immediately after evaluating the throw-expression (lib.terminate.handler), if called by the implementation [...]
So the stack is guaranteed not to be unwound.
But from 15.3p9:
[...]whether or not the stack is unwound before this call to terminate() is implementation-defined (except.terminate).
And 15.5.1 actually defines that in most cases the stack is unwound.
History | |||
---|---|---|---|
Date | User | Action | Args |
2010-10-21 18:28:33 | admin | set | messages: + msg2208 |
2001-04-11 00:00:00 | admin | create |