Restore the is_one_of variable template

This commit is contained in:
louiz’
2018-01-25 02:22:19 +01:00
parent 3f85137265
commit e267512ad4
3 changed files with 15 additions and 12 deletions
+6 -3
View File
@@ -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;