diff --git a/include/eigenpy/ufunc.hpp b/include/eigenpy/ufunc.hpp index eb2c049cb9be65a06884383e17407131035b9a6d..2647f8cf2742ff050b85bc8148d975bf5b93d676 100644 --- a/include/eigenpy/ufunc.hpp +++ b/include/eigenpy/ufunc.hpp @@ -12,9 +12,15 @@ namespace eigenpy namespace internal { +#ifdef NPY_1_19_API_VERSION + #define EIGENPY_NPY_CONST_UFUNC_ARG const +#else + #define EIGENPY_NPY_CONST_UFUNC_ARG +#endif + #define EIGENPY_REGISTER_BINARY_OPERATOR(name,op) \ template<typename T1, typename T2, typename R> \ - void binary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * /*data*/) \ + void binary_op_##name(char** args, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * dimensions, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * steps, void * /*data*/) \ { \ npy_intp is0 = steps[0], is1 = steps[1], \ os = steps[2], n = *dimensions; \ @@ -31,7 +37,7 @@ namespace eigenpy } \ \ template<typename T> \ - void binary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * data) \ + void binary_op_##name(char** args, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * dimensions, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * steps, void * data) \ { \ binary_op_##name<T,T,T>(args,dimensions,steps,data); \ } @@ -49,7 +55,7 @@ namespace eigenpy #define EIGENPY_REGISTER_UNARY_OPERATOR(name,op) \ template<typename T, typename R> \ - void unary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * /*data*/) \ + void unary_op_##name(char** args, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * dimensions, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * steps, void * /*data*/) \ { \ npy_intp is = steps[0], \ os = steps[1], n = *dimensions; \ @@ -65,7 +71,7 @@ namespace eigenpy } \ \ template<typename T> \ - void unary_op_##name(char** args, const npy_intp * dimensions, const npy_intp * steps, void * data) \ + void unary_op_##name(char** args, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * dimensions, EIGENPY_NPY_CONST_UFUNC_ARG npy_intp * steps, void * data) \ { \ unary_op_##name<T,T>(args,dimensions,steps,data); \ }