1234567891011121314151617181920212223242526272829303132333435363738 |
- #ifndef boost_python_numpy_numpy_object_mgr_traits_hpp_
- #define boost_python_numpy_numpy_object_mgr_traits_hpp_
- #include <boost/python/numpy/config.hpp>
- #define NUMPY_OBJECT_MANAGER_TRAITS(manager) \
- template <> \
- struct BOOST_NUMPY_DECL object_manager_traits<manager> \
- { \
- BOOST_STATIC_CONSTANT(bool, is_specialized = true); \
- static inline python::detail::new_reference adopt(PyObject* x) \
- { \
- return python::detail::new_reference(python::pytype_check((PyTypeObject*)get_pytype(), x)); \
- } \
- static bool check(PyObject* x) \
- { \
- return ::PyObject_IsInstance(x, (PyObject*)get_pytype()); \
- } \
- static manager* checked_downcast(PyObject* x) \
- { \
- return python::downcast<manager>((checked_downcast_impl)(x, (PyTypeObject*)get_pytype())); \
- } \
- static PyTypeObject const * get_pytype(); \
- }
- #endif
|