diff options
-rw-r--r-- | CHANGELOG.rst | 6 | ||||
-rw-r--r-- | packaging/biboumi.spec.cmake | 3 | ||||
-rw-r--r-- | src/database/row.hpp | 4 | ||||
-rw-r--r-- | src/utils/is_one_of.hpp | 9 | ||||
-rw-r--r-- | tests/utils.cpp | 14 |
5 files changed, 21 insertions, 15 deletions
diff --git a/CHANGELOG.rst b/CHANGELOG.rst index 0e0d207..8fdafe9 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,3 +1,9 @@ +Version 7.2 - 2018-01-24 +======================== + +- Fix compilation with gcc 4.9. This is the last version to support this + old version. + Version 7.1 - 2018-01-22 ======================== diff --git a/packaging/biboumi.spec.cmake b/packaging/biboumi.spec.cmake index eeec557..d07ed74 100644 --- a/packaging/biboumi.spec.cmake +++ b/packaging/biboumi.spec.cmake @@ -66,6 +66,9 @@ make check %{?_smp_mflags} * ${RPM_DATE} Le Coz Florent <louiz@louiz.org> - ${RPM_VERSION}-1 - Build latest git revision +* Wed Jan 24 2018 Le Coz Florent <louiz@louiz.org> - 7.2-1 + Update to version 7.2 + * Wed Jan 22 2018 Le Coz Florent <louiz@louiz.org> - 7.1-1 Update to version 7.1 diff --git a/src/database/row.hpp b/src/database/row.hpp index 1b50ff9..2d55897 100644 --- a/src/database/row.hpp +++ b/src/database/row.hpp @@ -30,13 +30,13 @@ struct Row } template <bool Coucou=true> - void save(std::unique_ptr<DatabaseEngine>& db, typename std::enable_if<!is_one_of<Id, T...> && Coucou>::type* = nullptr) + void save(std::unique_ptr<DatabaseEngine>& db, typename std::enable_if<!is_one_of<Id, T...>::value && Coucou>::type* = nullptr) { this->insert(*db); } template <bool Coucou=true> - void save(std::unique_ptr<DatabaseEngine>& db, typename std::enable_if<is_one_of<Id, T...> && Coucou>::type* = nullptr) + void save(std::unique_ptr<DatabaseEngine>& db, typename std::enable_if<is_one_of<Id, T...>::value && Coucou>::type* = nullptr) { const Id& id = std::get<Id>(this->columns); if (id.value == Id::unset_value) diff --git a/src/utils/is_one_of.hpp b/src/utils/is_one_of.hpp index 4d6770e..c706421 100644 --- a/src/utils/is_one_of.hpp +++ b/src/utils/is_one_of.hpp @@ -3,15 +3,12 @@ #include <type_traits> template <typename...> -struct is_one_of_implem { +struct is_one_of { static constexpr bool value = false; }; template <typename F, typename S, typename... T> -struct is_one_of_implem<F, S, T...> { +struct is_one_of<F, S, T...> { static constexpr bool value = - std::is_same<F, S>::value || is_one_of_implem<F, T...>::value; + std::is_same<F, S>::value || is_one_of<F, T...>::value; }; - -template<typename... T> -constexpr bool is_one_of = is_one_of_implem<T...>::value; diff --git a/tests/utils.cpp b/tests/utils.cpp index 6de19f0..99c7040 100644 --- a/tests/utils.cpp +++ b/tests/utils.cpp @@ -175,11 +175,11 @@ TEST_CASE("dirname") TEST_CASE("is_in") { - CHECK((is_one_of<int, float, std::string, int>) == true); - CHECK((is_one_of<int, float, std::string>) == false); - CHECK((is_one_of<int>) == false); - CHECK((is_one_of<int, int>) == true); - CHECK((is_one_of<bool, int>) == false); - CHECK((is_one_of<bool, bool>) == true); - CHECK((is_one_of<bool, bool, bool, bool, bool, int>) == true); + CHECK((is_one_of<int, float, std::string, int>::value) == true); + CHECK((is_one_of<int, float, std::string>::value) == false); + CHECK((is_one_of<int>::value) == false); + CHECK((is_one_of<int, int>::value) == true); + CHECK((is_one_of<bool, int>::value) == false); + CHECK((is_one_of<bool, bool>::value) == true); + CHECK((is_one_of<bool, bool, bool, bool, bool, int>::value) == true); } |