10 concept MemberVariantIndex =
requires(T
const& variant) {
11 { variant.index() } -> concepts::SameAs<size_t>;
14 struct VariantIndexFunction {
16 requires(concepts::TagInvocableTo<VariantIndexFunction, size_t, T const&> || MemberVariantIndex<T>)
17 constexpr auto operator()(T
const& variant)
const ->
size_t {
18 if constexpr (concepts::TagInvocableTo<VariantIndexFunction, size_t, T const&>) {
21 return variant.index();
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
constexpr auto variant_index
Definition variant_index.h:27