|
Boost : |
Subject: Re: [boost] Looking for thoughts on a new smart pointer: shared_ptr_nonnull
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2013-10-04 13:43:29
On 4 Oct 2013 at 9:45, Eric Niebler wrote:
> 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.
>
> Precondition violations ==> assertions. Use BOOST_ASSERT. That gives
> people a way to hook the behavior while giving a sane default.
Agreed. Fatal, insta-kill exceptions are underused in C++. I tend to
sprinkle checks for "impossible" state all over my code with
insta-kill fatal exception termination if they occur. They're very
handy for detecting race conditions/memory corruption/bugs in mine or
third party code.
Niall
-- Currently unemployed and looking for work. Work Portfolio: http://careers.stackoverflow.com/nialldouglas/
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk