std::variant cpp17 destructible requirements code example
Example: variant hold type
template<typename T, typename VARIANT_T>
struct variant_member;
template<typename T, typename... ALL_T>
struct variant_member<T, std::variant<ALL_T...>>
: public std::disjunction<std::is_same<T, ALL_T>...> {};
// Using as: variant_member<TYPE, VARIANT>::value