|
Boost : |
From: Martin Bonner (martin.bonner_at_[hidden])
Date: 2005-08-18 03:36:56
----Original Message----
From: Thorsten Ottosen [mailto:nesotto_at_[hidden]]
Sent: 17 August 2005 17:19
To: boost_at_[hidden]
Subject: Re: [boost] Propose adding Clone Smart Pointer (clone_ptr) to
the boost library
> "Martin Bonner" <martin.bonner_at_[hidden]> wrote in message
>> B) Under what circumstances is a std::container<clone_ptr<T> >
>> better than a boost::ptr_container<T>?
>
> I won't discuss if it's better,
Perhaps "better" is too loaded a word. What I meant is that both allow a
user to implement a container of heterogeneous objects. The documentation
needs to explain when the user should choose one over the other (they must
offer different trade-offs).
I was about to say "Just as the documentation compares and constrasts
boost::any and boost::variant." However it turns out that it doesn't! It
would be useful if it did.
> but its certainly very different
> in thefollowing sense:
>
> - ptr_container<T> discourages cloning of T objects and doesn't
> require it
> - vector<clone_ptr<T>> requires cloning of T objects (and hence
> encourages
> it)
>
> If T is an OO-type with virtual functions, I find that identity often
> matters (performance and logical-wise) and hence that excessive
> cloning is best avoided.
I agree. I think that clone_ptr is designed for a rather small niche, and I
can't see myself ever needing it ... but that doesn't mean it couldn't be
useful to somebody.
-- Martin Bonner Martin.Bonner_at_[hidden] Pi Technology, Milton Hall, Ely Road, Milton, Cambridge, CB4 6WZ, ENGLAND Tel: +44 (0)1223 441434
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk