From 5c8eb86bcc79b4eb9c9a7eb2b145a7abd0d147ed Mon Sep 17 00:00:00 2001
From: Justin Carpentier <justin.carpentier@inria.fr>
Date: Wed, 15 Jul 2020 20:10:36 +0200
Subject: [PATCH] core: fix argument according to the Numpy version

---
 include/eigenpy/ufunc.hpp | 14 ++++++++++----
 1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/include/eigenpy/ufunc.hpp b/include/eigenpy/ufunc.hpp
index eb2c049..2647f8c 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); \
     }
-- 
GitLab