Boost logo

Boost :

From: David Abrahams (dave_at_[hidden])
Date: 2007-08-22 22:10:58

on Wed Aug 22 2007, "Peter Dimov" <> wrote:

> Howard Hinnant wrote:
>> On Aug 22, 2007, at 7:14 PM, David Abrahams wrote:
>>> The reason is, "Peter said so." In other words, if you accept Peter's
>>> modification, the contract says "if you construct it this way, it's a
>>> logic error to use it that way."
>>> I don't see a problem with that.
>> Ok, so what if Howard says: If you construct it this way, it's a run
>> time error to use it the that way. Is that statement in any way more
>> or less correct?
> Howard actually says that using it that way results in an exception, and
> this statement isn't more or less correct. It's just different.


If we can compare the correcness of those two contracts at all, the
correctness of throwing depends on whether there's a use case that can
reasonably recover. As far as I can tell, there's no realistic
scenario in which it's not a programming error (so far the best we've
come up with is "the user selects the mutex via std::cin"), and you
can't really recover from programming errors at runtime.

It's all in this thread:

Dave Abrahams
Boost Consulting
The Astoria Seminar ==>

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