[section boost/python/pointee.hpp] [section Introduction] introduces a traits metafunction `template pointee` that can be used to extract the "pointed-to" type from the type of a pointer or smart pointer. [endsect] [section Class template `pointee`] `pointee` is used by the [link high_level_components.boost_python_class_hpp.class_template_class_t_bases_hel `class_<...>`] template to deduce the type being held when a pointer or smart pointer type is used as its HeldType argument. `` namespace boost { namespace python { template struct pointee { typedef T::element_type type; }; // specialization for pointers template struct pointee { typedef T type; }; } `` [endsect] [section Examples] Given a 3rd-party smart pointer type `smart_pointer`, one might partially specialize `pointee >` so that it can be used as the HeldType for a class wrapper: `` #include #include #include namespace boost { namespace python { template struct pointee > { typedef T type; }; }} BOOST_PYTHON_MODULE(pointee_demo) { class_ >("third_party_class") .def(...) ... ; } `` [endsect] [endsect]