Merge tag '7.2'
This commit is contained in:
@@ -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
|
Version 7.1 - 2018-01-22
|
||||||
========================
|
========================
|
||||||
|
|
||||||
|
|||||||
@@ -66,6 +66,9 @@ make check %{?_smp_mflags}
|
|||||||
* ${RPM_DATE} Le Coz Florent <louiz@louiz.org> - ${RPM_VERSION}-1
|
* ${RPM_DATE} Le Coz Florent <louiz@louiz.org> - ${RPM_VERSION}-1
|
||||||
- Build latest git revision
|
- 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
|
* Wed Jan 22 2018 Le Coz Florent <louiz@louiz.org> - 7.1-1
|
||||||
Update to version 7.1
|
Update to version 7.1
|
||||||
|
|
||||||
|
|||||||
@@ -30,13 +30,13 @@ struct Row
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <bool Coucou=true>
|
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);
|
this->insert(*db);
|
||||||
}
|
}
|
||||||
|
|
||||||
template <bool Coucou=true>
|
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);
|
const Id& id = std::get<Id>(this->columns);
|
||||||
if (id.value == Id::unset_value)
|
if (id.value == Id::unset_value)
|
||||||
|
|||||||
@@ -3,15 +3,12 @@
|
|||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
template <typename...>
|
template <typename...>
|
||||||
struct is_one_of_implem {
|
struct is_one_of {
|
||||||
static constexpr bool value = false;
|
static constexpr bool value = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <typename F, typename S, typename... T>
|
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 =
|
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;
|
|
||||||
|
|||||||
+7
-7
@@ -175,11 +175,11 @@ TEST_CASE("dirname")
|
|||||||
|
|
||||||
TEST_CASE("is_in")
|
TEST_CASE("is_in")
|
||||||
{
|
{
|
||||||
CHECK((is_one_of<int, float, std::string, int>) == true);
|
CHECK((is_one_of<int, float, std::string, int>::value) == true);
|
||||||
CHECK((is_one_of<int, float, std::string>) == false);
|
CHECK((is_one_of<int, float, std::string>::value) == false);
|
||||||
CHECK((is_one_of<int>) == false);
|
CHECK((is_one_of<int>::value) == false);
|
||||||
CHECK((is_one_of<int, int>) == true);
|
CHECK((is_one_of<int, int>::value) == true);
|
||||||
CHECK((is_one_of<bool, int>) == false);
|
CHECK((is_one_of<bool, int>::value) == false);
|
||||||
CHECK((is_one_of<bool, bool>) == true);
|
CHECK((is_one_of<bool, bool>::value) == true);
|
||||||
CHECK((is_one_of<bool, bool, bool, bool, bool, int>) == true);
|
CHECK((is_one_of<bool, bool, bool, bool, bool, int>::value) == true);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user