"Douglas Gregor" <[EMAIL PROTECTED]> wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> [...]
> template
> <
> typename T1,
> template <class> class OP1,
> class CP1,
> template <class> class KP1,
> template <class> class SP1
> >
> SmartPtr(SmartPtr<T1, OP1, CP1, KP1, SP1> const& rhs,
> typename SmartPtr<T1, OP1, CP1, KP1, SP1>::copyable* = 0)
>
> In SmartPtrs are should be copyable, include
> typedef void copyable;
>
> In other SmartPtrs, don't include typedef copyable.
Hmm...this sounds interesting, but it sounds like it still requires PTS.
I see that you are applying SFINAE, but let's tweak it like so:
SmartPtr(SmartPtr<T1, OP1, CP1, KP1, SP1> const& rhs,
typename OP1::copyable* = 0)
Now, you put the typedefs in the policies, which eliminates having to
create multiple specializations of SmartPtr itself. Thanks, Doug!
Dave
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost