boost::is_impl_ptr
// In header: <impl_ptr.hpp> template<typename , typename = void> struct is_impl_ptr : public false_type { };