A type trait (is_variant_element) and a concept (VariantElement) that tell if a type T is a member of a variant or not. It can be used even if the variant's elements are not yet defined (just forward-declared).