template<typename user_type, template< typename, typename... > class PT = detail::no_policy, typename... more_types> struct impl_ptr;namespace boost { template<typename , typename = void> struct is_impl_ptr; template<typename T> struct is_impl_ptr<T, void_type< typename T::impl_ptr_type >>; typedef void void_type; typedef ::impl_ptr< U, P, M... > impl_ptr; }