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

Boost list run by bdawes at, gregod at, cpdaniel at, john at