From 249618fcb748a3c34d57ff30a1f09f5d14490545 Mon Sep 17 00:00:00 2001
From: Justin Carpentier <justin.carpentier@inria.fr>
Date: Mon, 9 Dec 2019 20:39:35 +0100
Subject: [PATCH] core: use implicitly_convertible

---
 include/eigenpy/details.hpp | 31 ++-----------------------------
 1 file changed, 2 insertions(+), 29 deletions(-)

diff --git a/include/eigenpy/details.hpp b/include/eigenpy/details.hpp
index 92f62a6..6f0ce38 100644
--- a/include/eigenpy/details.hpp
+++ b/include/eigenpy/details.hpp
@@ -515,33 +515,6 @@ namespace eigenpy
     }
   };
   
-  template<typename MatType>
-  struct EigenFromPy< Eigen::MatrixBase<MatType> >
-  {
-    typedef EigenFromPy<MatType> EigenFromPyDerived;
-    typedef Eigen::MatrixBase<MatType> Base;
-    
-    /// \brief Determine if pyObj can be converted into a MatType object
-    static void* convertible(PyArrayObject* pyObj)
-    {
-      return EigenFromPyDerived::convertible(pyObj);
-    }
-    
-    /// \brief Allocate memory and copy pyObj in the new storage
-    static void construct(PyObject* pyObj,
-                          bp::converter::rvalue_from_python_stage1_data* memory)
-    {
-      EigenFromPyDerived::construct(pyObj,memory);
-    }
-    
-    static void registration()
-    {
-      bp::converter::registry::push_back
-      (reinterpret_cast<void *(*)(_object *)>(&EigenFromPy::convertible),
-       &EigenFromPy::construct,bp::type_id<Base>());
-    }
-  };
-  
   template<typename MatType,typename EigenEquivalentType>
   void enableEigenPySpecific()
   {
@@ -557,7 +530,8 @@ namespace eigenpy
 
       // Add also conversion to Eigen::MatrixBase<MatType>
       typedef Eigen::MatrixBase<MatType> MatTypeBase;
-      EigenFromPy<MatTypeBase>::registration();
+      bp::implicitly_convertible<MatType,MatTypeBase>();
+      bp::implicitly_convertible<MatTypeBase,MatType>();
     }
   };
 
@@ -585,7 +559,6 @@ namespace eigenpy
     
     bp::to_python_converter<MatType,EigenToPy<MatType> >();
     EigenFromPyConverter<MatType>::registration();
-   
   }
 
 } // namespace eigenpy
-- 
GitLab