Add Traits::None
This commit is contained in:
parent
7b01938ece
commit
0fb92e3685
|
@ -30,6 +30,11 @@ template <typename... T> struct All : Bool<true> {
|
||||||
template <typename Head, typename... Tail> struct All<Head, Tail...> : Conditional<Head, All<Tail...>, Bool<false>> {
|
template <typename Head, typename... Tail> struct All<Head, Tail...> : Conditional<Head, All<Tail...>, Bool<false>> {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <typename... T> struct None : Bool<true> {
|
||||||
|
};
|
||||||
|
template <typename Head, typename... Tail> struct None<Head, Tail...> : Conditional<Head, Bool<false>, None<Tail...>> {
|
||||||
|
};
|
||||||
|
|
||||||
template <typename... Condition> using EnableIf = typename std::enable_if<All<Condition...>::value, Detail::Enabler>::type;
|
template <typename... Condition> using EnableIf = typename std::enable_if<All<Condition...>::value, Detail::Enabler>::type;
|
||||||
template <typename... Condition> using DisableIf = typename std::enable_if<!All<Condition...>::value, Detail::Enabler>::type;
|
template <typename... Condition> using DisableIf = typename std::enable_if<!All<Condition...>::value, Detail::Enabler>::type;
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,9 @@ static_assert(!Any<Bool<false>, Bool<false>>::value, "Any: negative case");
|
||||||
static_assert(Any<Bool<true>, Bool<false>>::value, "Any: positive case");
|
static_assert(Any<Bool<true>, Bool<false>>::value, "Any: positive case");
|
||||||
static_assert(!All<Bool<true>, Bool<false>>::value, "All: negative case");
|
static_assert(!All<Bool<true>, Bool<false>>::value, "All: negative case");
|
||||||
static_assert(All<Bool<true>, Bool<true>>::value, "All: positive case");
|
static_assert(All<Bool<true>, Bool<true>>::value, "All: positive case");
|
||||||
|
static_assert(!None<Bool<true>, Bool<false>>::value, "None: negative case");
|
||||||
|
static_assert(!None<Bool<true>, Bool<true>>::value, "None: negative case");
|
||||||
|
static_assert(None<Bool<false>, Bool<false>>::value, "None: positive case");
|
||||||
|
|
||||||
static_assert(!IsSpecializationOf<string, basic_stringbuf>::value, "IsSpecializationOf: negative case");
|
static_assert(!IsSpecializationOf<string, basic_stringbuf>::value, "IsSpecializationOf: negative case");
|
||||||
static_assert(IsSpecializationOf<string, basic_string>::value, "IsSpecializationOf: positive case");
|
static_assert(IsSpecializationOf<string, basic_string>::value, "IsSpecializationOf: positive case");
|
||||||
|
|
Loading…
Reference in New Issue