At 07:33 AM 1/18/2003, Peter Dimov wrote:
>From: "Terje Slettebų" <[EMAIL PROTECTED]>
>> >From: "David Abrahams" <[EMAIL PROTECTED]>
>> >
>> > Please don't take this to mean I'm against a
>> > policy-based smart pointer; quite the opposite.  I've
>> > said all along it would be great to have one in boost.
>> > I've even wished I had an appropriate occasionally.
>
>Yep.
>
>> > I just don't want to trivialize what I perceive to be
>> > valid concerns, either.  Understanding the costs of
>> > complexity should be as important to the designer of
>> > policy-based classes as to everyone else, if not more
>> > so.
>>
>> I understand the concern. For one thing, we don't have template typedefs,
>> yet, although me may get a similar effect (if not the same type) with
>e.g.:
>>
>> template<class T>
>> struct shared_ptr : smart_ptr<T, policies...> {};
>
>Not quite.
>
>It is not simply declaration complexity that Dave's talking about - it can
>be avoided by making smart_ptr<T> be shared_ptr<T> by using default
>parameters. It is semantic complexity. shared_ptr is fairly deep by itself
>(and getting the specification and the tests to a state that can be
>considered adequate wasn't easy.)

One aspect of the semantic complexity that bothers me
is that the various flavors of smart pointer may not
be interchangeable.  shared_ptr is partly parameterized
on implementation, but the interface and semantics
remain the same.  For a policy-based smart pointer
to be usable I think you need a clear set of concepts
that clients can use as requirements, and a clear
delineation of which combinations of policies support
which concepts. 

_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to