Boost logo

Boost :

Subject: Re: [boost] Looking for thoughts on a new smart pointer: shared_ptr_nonnull
From: Mostafa (mostafa_working_away_at_[hidden])
Date: 2013-10-01 23:00:05

On Tue, 01 Oct 2013 15:54:16 -0700, Luke Bradford
<lukebradford01_at_[hidden]> wrote:

> Hi,
> I'm new to this list, so apologies for any oversights or faux pas.
> I've been finding a lot of use for a type of smart pointer I call
> shared_ptr_nonnull, which is a variation on shared_ptr which is never
> allowed to be empty. Specifically:
> (1) It doesn't have reset() with no arguments, doesn't have a default
> constructor, and doesn't have implicit conversion to bool (which would
> always be true.)
> (2) It throws an exception whenever there's an attempt to make it empty,
> i.e. in constructors, reset, assignment, and swap.
> For convenience, it's implicitly convertible to shared_ptr, and I have
> all
> of shared_ptr's templated operators implemented with possible
> combinations
> of shared_ptr and shared_ptr_nonnull. Usually it can be used just by
> changing the type of a shared_ptr.
> We have a lot of shared_ptrs, especially member variables, which are
> claimed to be "always valid" and this class enforces that, at compile
> time
> (1) and runtime (2).
> Has there been any discussion of something like this? Does anybody have
> any
> thoughts, suggestions, criticisms? Who's in charge of the smart pointer
> library these days?
> Thanks,
> Luke

Yes. I have my own version lying around and I would prefer an official
Boost one.


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