Subject: Re: [boost] The noexcept Specifier & Block
From: Gabriel Dos Reis (gdr_at_[hidden])
Date: 2009-04-17 11:53:45
On Fri, Apr 17, 2009 at 10:27 AM, Alexander Terekhov <terekhov_at_[hidden]> wrote:
> Gabriel Dos Reis wrote:
>> On Fri, Apr 17, 2009 at 6:55 AM, Alexander Terekhov <terekhov_at_[hidden]> wrote:
>> > Gabriel Dos Reis wrote:
>> >> On Thu, Apr 16, 2009 at 7:11 PM, Alexander Terekhov <terekhov_at_[hidden]> wrote:
>> >> > Scott McMurray wrote:
>> >> > [...]
>> >> >> I don't see how you're going to get the "at throw point" you're asking for.
>> >> >
>> >> > Two-phase EH.
>> >> An implementation strategy used by some compilers. It is not
>> >> something required by C++. It is mysterious why some popular
>> >> compilers insist on using that strategy when they know they are
>> >> dealing with C++ applications.
>> > Because that strategy allows to not unwind the stack for unexpected
>> > exceptions.
>> So, now we are talking of cost of doing something
>> not required by C++ semantics; rarely used in practice,
>> but with a cost imposed on those who don't want it. A strategy
>> that hurts performance of C++ programs.
> Wow. Are you sure?
> Let all the folks like
> know about such disastrous nature of two-phase EH.
That document only provides the complement to the psABI for the so-called
'common vendor ABI' with its 'official' website at
And quoting for the document:
# A two-phase exception-handling model is not strictly necessary to implement
# C++ language semantics, but it does provide some benefits. For example,
# the first phase allows an exception-handling mechanism to dismiss an
# exception before stack unwinding begins, which allows resumptive exception
# handling (correcting the exceptional condition and resuming execution at
# the point where it was raised). While C++ does not support resumptive
# exception handling, other languages do, and the two-phase model allows
# C++ to coexist with those languages on the stack.
How many industrial strength languages support resumptive exception handling?
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk