"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