|
|
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 synopsis
namespace 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.