This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.
Section: 99 [unexpected] Status: NAD Submitter: Vyatcheslav Sysoltsev Opened: 2003-09-29 Last modified: 2016-01-28
Priority: Not Prioritized
View all issues with NAD status.
Clause [except.unexpected] paragraph 1 says that "void unexpected(); is called (18.7.2) immediately after completing the stack unwinding for the former function", but 220.127.116.11 (Effects) says that "void unexpected(); . . . Calls the unexpected_handler function in effect immediately after evaluating the throwexpression (18.104.22.168),". Isn't here a contradiction: 15.5.2 requires stack have been unwound when in void unexpected() and therefore in unexpected_handler but 22.214.171.124 claims that unexpected_handler is called "in effect immediately" after evaluation of throw expression is finished, so there is no space left for stack to be unwound therefore? I think the phrase "in effect immediately" should be removed from the standard because it brings ambiguity in understanding.
There is no contradiction. The phrase "in effect immediately" is just to clarify which handler is to be called.