Added is_type_member to check if a type is inside a variant or similar types.
This commit is contained in:
parent
3910f9638e
commit
97d68d31e8
@ -39,8 +39,6 @@ struct always_false_val
|
|||||||
template<auto V>
|
template<auto V>
|
||||||
inline constexpr bool always_false_val_v = always_false_val<V>::value;
|
inline constexpr bool always_false_val_v = always_false_val<V>::value;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template<template<typename> typename TFilter, typename... TArgs>
|
template<template<typename> typename TFilter, typename... TArgs>
|
||||||
struct TypeFilter;
|
struct TypeFilter;
|
||||||
|
|
||||||
@ -103,6 +101,17 @@ struct is_any_type : std::disjunction<std::is_same<T, Types>...> {};
|
|||||||
template<typename T, typename... Types>
|
template<typename T, typename... Types>
|
||||||
static constexpr bool is_any_type_v = is_any_type<T, Types...>::value;
|
static constexpr bool is_any_type_v = is_any_type<T, Types...>::value;
|
||||||
|
|
||||||
|
template<typename TElement, typename TCollection>
|
||||||
|
struct is_type_member;
|
||||||
|
|
||||||
|
template<typename TElement, template<typename...> typename TCollection, typename... Ts>
|
||||||
|
struct is_type_member<TElement, TCollection<Ts...>>
|
||||||
|
: std::bool_constant<(... || std::is_same<TElement, Ts>{})>
|
||||||
|
{};
|
||||||
|
|
||||||
|
template<typename TElement, typename TCollection>
|
||||||
|
constexpr bool is_type_member_v = is_type_member<TElement, TCollection>::value;
|
||||||
|
|
||||||
//
|
//
|
||||||
// public functions
|
// public functions
|
||||||
//
|
//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user