Such a pack is valid if 0≤mi<variant_size_v<remove_reference_t<Vi>>
for all 0≤i<n.
For each valid pack m, let e(m) denote the expression:
INVOKE(std::forward<Visitor>(vis), get<m>(std::forward<V>(vars))...)// see [func.require]
for the first form and
INVOKE<R>(std::forward<Visitor>(vis), get<m>(std::forward<V>(vars))...)// see [func.require]
for the second form.
Complexity: For n ≤ 1, the invocation of the callable object is
implemented in constant time, i.e., for n=1, it does not depend on
the number of alternative types of V0.
For n>1, the invocation of the callable object has
no complexity requirements.