|
Boost.PythonHeader <boost/python/pointee.hpp> |
pointee
pointee
synopsis
<boost/python/pointee.hpp>
introduces a
traits metafunction
template pointee<T>
that can be used to extract the "pointed-to" type from the type of a pointer or smart pointer.
pointee<class T>
pointee<T>
is used by the class_<...>
template to deduce the type being held when a pointer or smart
pointer type is used as its HeldType
argument.
pointee
synopsisnamespace boost { namespace python { template <class T> struct pointee { typedef T::element_type type; }; // specialization for pointers template <T> struct pointee<T*> { typedef T type; }; }
smart_pointer<T>
, one might partially specialize
pointee<smart_pointer<T> >
so that it can be
used as the HeldType
for a class wrapper:
#include <boost/python/pointee.hpp> #include <boost/python/class.hpp> #include <third_party_lib.hpp> namespace boost { namespace python { template <class T> struct pointee<smart_pointer<T> > { typedef T type; }; }} BOOST_PYTHON_MODULE(pointee_demo) { class_<third_party_class, smart_pointer<third_party_class> >("third_party_class") .def(...) ... ; }
Revised 13 November, 2002
© Copyright Dave Abrahams 2002. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)