summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.rst6
-rw-r--r--packaging/biboumi.spec.cmake3
-rw-r--r--src/database/row.hpp4
-rw-r--r--src/utils/is_one_of.hpp9
-rw-r--r--tests/utils.cpp14
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);
}