diff options
author | louiz’ <louiz@louiz.org> | 2018-01-25 02:17:20 +0100 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2018-01-25 02:22:19 +0100 |
commit | e267512ad40c073bd5a5b37a4ee3378c80b9f523 (patch) | |
tree | b33a90ad14ba701984a434543225a3f08c01cf6a /src | |
parent | 3f8513726512308b1b48d3370d7acf0f63752725 (diff) | |
download | biboumi-e267512ad40c073bd5a5b37a4ee3378c80b9f523.tar.gz biboumi-e267512ad40c073bd5a5b37a4ee3378c80b9f523.tar.bz2 biboumi-e267512ad40c073bd5a5b37a4ee3378c80b9f523.tar.xz biboumi-e267512ad40c073bd5a5b37a4ee3378c80b9f523.zip |
Restore the is_one_of variable template
Diffstat (limited to 'src')
-rw-r--r-- | src/database/row.hpp | 4 | ||||
-rw-r--r-- | src/utils/is_one_of.hpp | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/src/database/row.hpp b/src/database/row.hpp index 2d55897..130863a 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...>::value && Coucou>::type* = nullptr) + void save(std::unique_ptr<DatabaseEngine>& db, typename std::enable_if<!is_one_of<Id, T...> && 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...>::value && Coucou>::type* = nullptr) + void save(std::unique_ptr<DatabaseEngine>& db, typename std::enable_if<is_one_of<Id, T...> && 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 c706421..4d6770e 100644 --- a/src/utils/is_one_of.hpp +++ b/src/utils/is_one_of.hpp @@ -3,12 +3,15 @@ #include <type_traits> template <typename...> -struct is_one_of { +struct is_one_of_implem { static constexpr bool value = false; }; template <typename F, typename S, typename... T> -struct is_one_of<F, S, T...> { +struct is_one_of_implem<F, S, T...> { static constexpr bool value = - std::is_same<F, S>::value || is_one_of<F, T...>::value; + std::is_same<F, S>::value || is_one_of_implem<F, T...>::value; }; + +template<typename... T> +constexpr bool is_one_of = is_one_of_implem<T...>::value; |