From 3a84ce5afc9c5fc5e3436aca5d3ca08df72ac0f5 Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Wed, 31 Jul 2024 00:01:27 +0000 Subject: [PATCH 1/5] Use SFINAE to fix 'redefinition of struct' error on armhf Signed-off-by: Shane Loretz --- include/eigenpy/numpy.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/include/eigenpy/numpy.hpp b/include/eigenpy/numpy.hpp index 3786b091b..9f333a51d 100644 --- a/include/eigenpy/numpy.hpp +++ b/include/eigenpy/numpy.hpp @@ -139,12 +139,14 @@ struct NumpyEquivalentType { // See https://github.com/stack-of-tasks/eigenpy/pull/455 #if defined __linux__ +#include + template <> -struct NumpyEquivalentType { +struct NumpyEquivalentType::value, long long>::type> { enum { type_code = NPY_LONGLONG }; }; template <> -struct NumpyEquivalentType { +struct NumpyEquivalentType::value, unsigned long long>::type> { enum { type_code = NPY_ULONGLONG }; }; From aedc52b80a69bd6439b9020f6489354a4c1d4e68 Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Wed, 31 Jul 2024 01:13:02 +0000 Subject: [PATCH 2/5] Must use partial specialization Signed-off-by: Shane Loretz --- include/eigenpy/numpy.hpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/include/eigenpy/numpy.hpp b/include/eigenpy/numpy.hpp index 9f333a51d..2b6ea8a67 100644 --- a/include/eigenpy/numpy.hpp +++ b/include/eigenpy/numpy.hpp @@ -55,7 +55,7 @@ void EIGENPY_DLLAPI import_numpy(); int EIGENPY_DLLAPI PyArray_TypeNum(PyTypeObject* type); // By default, the Scalar is considered as a Python object -template +template struct NumpyEquivalentType { enum { type_code = NPY_USERDEF }; }; @@ -141,12 +141,16 @@ struct NumpyEquivalentType { #include -template <> -struct NumpyEquivalentType::value, long long>::type> { +template +struct NumpyEquivalentType::value && + std::is_same::value>> { enum { type_code = NPY_LONGLONG }; }; -template <> -struct NumpyEquivalentType::value, unsigned long long>::type> { +template +struct NumpyEquivalentType::value && + std::is_same::value>> { enum { type_code = NPY_ULONGLONG }; }; From 4aab474c9e8f88fb64762fb88b3b882ca6f29921 Mon Sep 17 00:00:00 2001 From: Shane Loretz Date: Wed, 31 Jul 2024 01:48:33 +0000 Subject: [PATCH 3/5] clang-format Signed-off-by: Shane Loretz --- include/eigenpy/numpy.hpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/include/eigenpy/numpy.hpp b/include/eigenpy/numpy.hpp index 2b6ea8a67..1d7b68f7b 100644 --- a/include/eigenpy/numpy.hpp +++ b/include/eigenpy/numpy.hpp @@ -142,15 +142,16 @@ struct NumpyEquivalentType { #include template -struct NumpyEquivalentType::value && - std::is_same::value>> { +struct NumpyEquivalentType< + Scalar, std::enable_if_t::value && + std::is_same::value> > { enum { type_code = NPY_LONGLONG }; }; template -struct NumpyEquivalentType::value && - std::is_same::value>> { +struct NumpyEquivalentType< + Scalar, + std::enable_if_t::value && + std::is_same::value> > { enum { type_code = NPY_ULONGLONG }; }; From 4009548404dcde42f9209d7d5e460294cc504bcd Mon Sep 17 00:00:00 2001 From: Wolfgang Merkt Date: Wed, 7 Aug 2024 16:19:36 +0100 Subject: [PATCH 4/5] Update CHANGELOG for #488 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fbb059ea..6f82e7b0f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Remove CMake CMP0167 warnings ([#487](https://github.com/stack-of-tasks/eigenpy/pull/487)) +- Fix compilation error on armhf ([#488](https://github.com/stack-of-tasks/eigenpy/pull/488)) ## [3.7.0] - 2024-06-11 From ad82346ab2df720fe613a8f49e07516ee76d5861 Mon Sep 17 00:00:00 2001 From: Wolfgang Merkt Date: Wed, 7 Aug 2024 16:21:58 +0100 Subject: [PATCH 5/5] Fix CHANGELOG trailing whitespace --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f82e7b0f..686116d34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,7 +11,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Fixed - Remove CMake CMP0167 warnings ([#487](https://github.com/stack-of-tasks/eigenpy/pull/487)) -- Fix compilation error on armhf ([#488](https://github.com/stack-of-tasks/eigenpy/pull/488)) +- Fix compilation error on armhf ([#488](https://github.com/stack-of-tasks/eigenpy/pull/488)) ## [3.7.0] - 2024-06-11