#ifndef HALIDE_NUMPY_NUMPY_OBJECT_MGR_TRAITS_HPP_INCLUDED
#define HALIDE_NUMPY_NUMPY_OBJECT_MGR_TRAITS_HPP_INCLUDED
#define NUMPY_OBJECT_MANAGER_TRAITS(manager) \
template <> \
struct 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