Boost logo

Boost :

From: Larry Evans (jcampbell3_at_[hidden])
Date: 2002-08-30 11:42:03

David Abrahams wrote:

>From: "Larry Evans" <jcampbell3_at_[hidden]>

>> template<typename T>struct rc_T: ptr_header, T{...};
>>however, this would require duplicating the T CTOR arguments in
>>specializations of rc_T<T> CTORS and just forwarding them to T. However,
>>in an earlier post, Phillipe said this would require too many
>Isn't it time, finally, to stick the allocation inside a factory function
>for the outer shared pointer object so that the user never has to touch it?
If I understand you, then this factory function creates and returns an
instance of placed_ptr<T>
by doing the allocation for T (and the refcount), calling the
appropriate T CTOR, and then
returning the placed_ptr<T>. If so, then it suffers the same
disadvantage which Philippe
objected to earlier, i.e. it would require duplicating the T CTOR
interface in the factor method.

However, despite Philippe's objection, I'm still in favor of this
approach since it's harder
for the programmer to go wrong. I mentioned this earlier:
but there's obviously different views on how idiot-proof the code should
be. I also made
the same point about shared_ptr, but Peter had some objections to that
too. I can't remember
the details.


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