boost::is_impl_ptr<T, void_type< typename T::impl_ptr_type >>
// In header: <impl_ptr.hpp> template<typename T> struct is_impl_ptr<T, void_type< typename T::impl_ptr_type >> : public true_type { };