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
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