Such a pack is called valid if 0≤mi<variant_size_v<remove_reference_t<Variantsi>> 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<Variants>(vars))...)// see [func.require]
for the first form and
INVOKE<R>(std::forward<Visitor>(vis), get<m>(std::forward<Variants>(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 Variants0.
For n>1, the invocation of the callable object has
no complexity requirements.