From b845107c7f7ad6f9896a8f06444491040ec4f42a Mon Sep 17 00:00:00 2001
From: Justin Carpentier <justin.carpentier@inria.fr>
Date: Sat, 29 Oct 2022 16:43:45 +0200
Subject: [PATCH] all: fix issues with Boost >= 1.80

---
 include/eigenpy/angle-axis.hpp                       | 12 +++++-------
 include/eigenpy/decompositions/LDLT.hpp              |  7 ++++---
 include/eigenpy/decompositions/LLT.hpp               |  7 ++++---
 .../decompositions/SelfAdjointEigenSolver.hpp        |  7 ++++---
 include/eigenpy/decompositions/minres.hpp            |  4 ++--
 include/eigenpy/solvers/BasicPreconditioners.hpp     |  2 +-
 6 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/include/eigenpy/angle-axis.hpp b/include/eigenpy/angle-axis.hpp
index 894d9bfb..7bfb76e7 100644
--- a/include/eigenpy/angle-axis.hpp
+++ b/include/eigenpy/angle-axis.hpp
@@ -46,15 +46,13 @@ class AngleAxisVisitor : public bp::def_visitor<AngleAxisVisitor<AngleAxis> > {
   template <class PyClass>
   void visit(PyClass& cl) const {
     cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
-        .def(bp::init<Scalar, Vector3>(
-            (bp::arg("self"), bp::arg("angle"), bp::arg("axis")),
-            "Initialize from angle and axis."))
-        .def(bp::init<Matrix3>((bp::arg("self"), bp::arg("R")),
+        .def(bp::init<Scalar, Vector3>(bp::args("self", "angle", "axis"),
+                                       "Initialize from angle and axis."))
+        .def(bp::init<Matrix3>(bp::args("self", "R"),
                                "Initialize from a rotation matrix"))
-        .def(bp::init<Quaternion>((bp::arg("self"), bp::arg("quaternion")),
+        .def(bp::init<Quaternion>(bp::args("self", "quaternion"),
                                   "Initialize from a quaternion."))
-        .def(bp::init<AngleAxis>((bp::arg("self"), bp::arg("copy")),
-                                 "Copy constructor."))
+        .def(bp::init<AngleAxis>(bp::args("self", "copy"), "Copy constructor."))
 
         /* --- Properties --- */
         .add_property(
diff --git a/include/eigenpy/decompositions/LDLT.hpp b/include/eigenpy/decompositions/LDLT.hpp
index 1fa5d7ec..3d289d85 100644
--- a/include/eigenpy/decompositions/LDLT.hpp
+++ b/include/eigenpy/decompositions/LDLT.hpp
@@ -29,11 +29,12 @@ struct LDLTSolverVisitor
   template <class PyClass>
   void visit(PyClass &cl) const {
     namespace bp = boost::python;
-    cl.def(bp::init<>("Default constructor"))
+    cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
         .def(bp::init<Eigen::DenseIndex>(
-            bp::arg("size"), "Default constructor with memory preallocation"))
+            bp::args("self", "size"),
+            "Default constructor with memory preallocation"))
         .def(bp::init<MatrixType>(
-            bp::arg("matrix"),
+            bp::args("self", "matrix"),
             "Constructs a LDLT factorization from a given matrix."))
 
         .def("isNegative", &Solver::isNegative, bp::arg("self"),
diff --git a/include/eigenpy/decompositions/LLT.hpp b/include/eigenpy/decompositions/LLT.hpp
index 94361c7f..0fdfea4d 100644
--- a/include/eigenpy/decompositions/LLT.hpp
+++ b/include/eigenpy/decompositions/LLT.hpp
@@ -29,11 +29,12 @@ struct LLTSolverVisitor
   template <class PyClass>
   void visit(PyClass &cl) const {
     namespace bp = boost::python;
-    cl.def(bp::init<>("Default constructor"))
+    cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
         .def(bp::init<Eigen::DenseIndex>(
-            bp::arg("size"), "Default constructor with memory preallocation"))
+            bp::args("self", "size"),
+            "Default constructor with memory preallocation"))
         .def(bp::init<MatrixType>(
-            bp::arg("matrix"),
+            bp::args("self", "matrix"),
             "Constructs a LLT factorization from a given matrix."))
 
         .def("matrixL", &matrixL, bp::arg("self"),
diff --git a/include/eigenpy/decompositions/SelfAdjointEigenSolver.hpp b/include/eigenpy/decompositions/SelfAdjointEigenSolver.hpp
index bffeceb1..f7ac469c 100644
--- a/include/eigenpy/decompositions/SelfAdjointEigenSolver.hpp
+++ b/include/eigenpy/decompositions/SelfAdjointEigenSolver.hpp
@@ -25,11 +25,12 @@ struct SelfAdjointEigenSolverVisitor
   template <class PyClass>
   void visit(PyClass& cl) const {
     namespace bp = boost::python;
-    cl.def(bp::init<>("Default constructor"))
+    cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
         .def(bp::init<Eigen::DenseIndex>(
-            bp::arg("size"), "Default constructor with memory preallocation"))
+            bp::args("self", "size"),
+            "Default constructor with memory preallocation"))
         .def(bp::init<MatrixType, bp::optional<int> >(
-            bp::args("matrix", "options"),
+            bp::args("self", "matrix", "options"),
             "Computes eigendecomposition of given matrix"))
 
         .def("eigenvalues", &Solver::eigenvalues, bp::arg("self"),
diff --git a/include/eigenpy/decompositions/minres.hpp b/include/eigenpy/decompositions/minres.hpp
index 573e9ee9..747cbcd8 100644
--- a/include/eigenpy/decompositions/minres.hpp
+++ b/include/eigenpy/decompositions/minres.hpp
@@ -138,9 +138,9 @@ struct MINRESSolverVisitor
   template <class PyClass>
   void visit(PyClass& cl) const {
     namespace bp = boost::python;
-    cl.def(bp::init<>("Default constructor"))
+    cl.def(bp::init<>(bp::arg("self"), "Default constructor"))
         .def(bp::init<MatrixType>(
-            bp::arg("matrix"),
+            bp::args("self", "matrix"),
             "Initialize the solver with matrix A for further Ax=b solving.\n"
             "This constructor is a shortcut for the default constructor "
             "followed by a call to compute()."))
diff --git a/include/eigenpy/solvers/BasicPreconditioners.hpp b/include/eigenpy/solvers/BasicPreconditioners.hpp
index 7883e61d..05346829 100644
--- a/include/eigenpy/solvers/BasicPreconditioners.hpp
+++ b/include/eigenpy/solvers/BasicPreconditioners.hpp
@@ -34,7 +34,7 @@ struct PreconditionerBaseVisitor
   template <class PyClass>
   void visit(PyClass& cl) const {
     cl.def(bp::init<>("Default constructor"))
-        .def(bp::init<MatrixType>(bp::arg("A"),
+        .def(bp::init<MatrixType>(bp::args("self", "A"),
                                   "Initialize the preconditioner with matrix A "
                                   "for further Az=b solving."))
 #if EIGEN_VERSION_AT_LEAST(3, 3, 0)
-- 
GitLab