Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2006-02-12 18:53:32


Ion Gaztañaga <igaztanaga_at_[hidden]> writes:

>>>> and AFAIK it's impossible to implement zero-overhead stack unwinding
>>>> (you're the exception expert, so please correct me if I'm wrong).
>>> If by "zero-overhead stack unwinding" you mean exception handling that
>>> has no speed cost unless an exception is thrown, then consider
>>> yourself corrected.
>>
>> This means that it is impossible to implement stack unwind with no
>> speed cost when an exception is not thrown?
>> I'm definitely not an expert, not even a newbie in this field
>> probably, but I thought it was possible.
>> Or did I misunderstood your statement?
>
> I don't know anything about exception implementation,

Then please, with all due respect, don't speculate.

> but I suppose that the code must mark some "check-points" to know
> how many object are already constructed, to know how many
> destructors it must call when the exception occurs. I suppose that
> can be implemented as an integer/pointer increment or
> assignment. But the code must add something to the normal path to
> know what to do when the exception occurs.

No. All the necessary information is contained in the program counter
at the point where the exception is thrown.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk