Boost logo

Boost :

Subject: Re: [boost] [contract] oldof failure not in N1962?
From: Dave Abrahams (dave_at_[hidden])
Date: 2011-07-19 15:18:42


on Tue Jul 19 2011, Lorenzo Caminiti <lorcaminiti-AT-gmail.com> wrote:

>
> I'm sorry I managed to confuse everyone with this post
> because I meant to ask something different...
>
> My question instead, is: What shall I do if I fail to copy an oldof
> value?

I don't think I misunderstood your question, although I don't happen to
know what "oldof" means here...

> Specifically, what shall I do if an oldof copy throws an
> exception? This is not specified by N1962 (as far as I can see). I
> decided that if I fail to copy and olfof value then I call the
> postcondition_broken handler but only after executing the body (even
> if oldof values are internally copied before the body is executed).

As I said, that doesn't make any sense to me, for the reasons I already
gave, and because failure to allocate memory in precondition checking
does not amount to a broken postcondition.

That said, the function itself might be a nothrow function and turning
on contract checking should not change the function's semantics. That
would be my only argument against throwing an exception.

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

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