Re: [boost] Re: [review] Formal review of the Smart Container library

In-Reply-To: <ck8rf2$njl$1@sea.gmane.org> nesotto@cs.auc.dk (Thorsten Ottosen) wrote (abridged):
At some point it was discussed to have a new policy that decided the indirection of the reference type.
I feel the kinds of container are so different that it isn't appropriate to have a user-level policy which turns one into the other. It might make sense for them to share some common implementation, though.
It create much attention.
Indeed. My biggest problem was understanding what the library was, other than a grab-bag of features. The access syntax, for example - I sometimes felt it was a stand alone feature - that it would make just as much sense to have a vector<shared_ptr<T> > or vector<T*> that used the v.begin()->method() syntax, rather than something which flowed out of the specific intent of ptr_vector<T>. I suppose a policy approach might be appropriate if the same policy could be applied to all 3 kinds of vector. However, I am not keen on having 2 syntaxes for doing the same thing in the first place. I'm happy to use pointer syntax for things which are pointers.
smart in the same way smart pointers are smart. It should give the impression of exception-safety and resource ownership.
"Smart" suggests neither of those things to me.
I don't know.
Exactly what I need depends on circumstances. For example, I don't always need to let client code enumerate the container's contents. A container which allow that would need to be wrapped by a class which hid those members, because I don't like my classes to publish more interface than they need to.
Would an unindirected interface be enough? (eg, you can determine to disable cloning etc).
I'm not sure what you mean.
Did you ever forget to implement a wrapper function with the right exception-safety?
I don't believe I've ever had a problem in that area. -- Dave Harris, Nottingham, UK
participants (1)
-
brangdon@cix.compulink.co.uk