Boost logo

Boost :

Subject: Re: [boost] Looking for thoughts on a new smart pointer: shared_ptr_nonnull
From: Daniel James (daniel_at_[hidden])
Date: 2013-10-04 16:09:02


On 4 October 2013 17:45, Eric Niebler <eniebler_at_[hidden]> wrote:
> On 10/4/2013 9:20 AM, Matt Calabrese wrote:
>> but I definitely am against an exception for this type of
>> programmer error.
>
> This is the crux of it. If this condition really does represent a
> programmer error (and IMO in this case it does), then Matt is right.
> Throwing is wrong. Programmer error == bug == your program is already in
> some weird state. Continuing by throwing an exception and executing an
> arbitrary amount of code is not good.

I don't think this is always the case. For example, unexpected output
from a parser should not be an indicator of an error in the global
state.

> Precondition violations ==> assertions. Use BOOST_ASSERT. That gives
> people a way to hook the behavior while giving a sane default.

If throwing an exception when this is null is a bad idea, then not
checking in release mode is surely a terrible one.


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