"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

Reply via email to