Added is_type_member to check if a type is inside a variant or similar types.

This commit is contained in:
Patrick 2023-07-19 22:51:37 +02:00
parent 3910f9638e
commit 97d68d31e8

View File

@ -39,8 +39,6 @@ struct always_false_val
template<auto V>
inline constexpr bool always_false_val_v = always_false_val<V>::value;
template<template<typename> typename TFilter, typename... TArgs>
struct TypeFilter;
@ -103,6 +101,17 @@ struct is_any_type : std::disjunction<std::is_same<T, Types>...> {};
template<typename T, typename... Types>
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
//