1#ifndef CLASSDESC_PYTHONOBJECT_EPILOGUE_H
2#define CLASSDESC_PYTHONOBJECT_EPILOGUE_H
6 template <
class Derived,
class Base>
11 boost::python::objects::register_base_of<Derived>()((Base*)0);
14 template <
class Derived,
class Base>
22 template <
class T,
class Base>
26 classdesc_access::access_python<Base>().template type<T>(p,d);
27 if (is_same<T,Base>::value)
28 p.getClass<
T>().completed=
true;
31 registerBase<T,Base>();
35 template <
class T,
int rank>
36 void pythonDetail::ArrayGetRegisterClass<T,rank>::registerClass(
python_t& p)
38 auto& c=p.getClass<ArrayGet<T,rank> >();
41 c.def(
"__len__",&arrayMemLen<ArrayGet<T,rank>,
T>).
42 def(
"__getitem__",&ArrayGet<T,rank>::get);
44 c.def(
"__setitem__",&ArrayGet<T,rank>::set);
46 ArrayGetRegisterClass<typename std::remove_extent<T>::type,rank-1>::registerClass(p);
50 void python_t::defineEnum() {
51 ExtractClassNameAndSetScope scope(*
this,typeName<E>());
52 boost::python::enum_<E> e(scope.className.c_str());
53 for (
auto& i: enum_keysData<E>::keysData)
54 e.value(i.name,E(i.value));
59 Not<PythonExcludeType<typename remove_pointer<typename remove_reference<T>::type>::type>>,
Definition python_base.h:496
Contains access_* structs, and nothing else. These structs are used to gain access to private members...
Definition classdesc_access.h:20
Contains definitions related to classdesc functionality.
Definition classdesc.h:420
Definition classdesc.h:405
helper for constructing null descriptors
Definition classdesc.h:1106
Definition python_epilogue.h:61
controlled template specialisation: stolen from boost::enable_if.
Definition classdesc.h:282
Definition python_base.h:1208