diff --git a/source/iterators.tex b/source/iterators.tex index c552fbd18f..44b030e5e5 100644 --- a/source/iterators.tex +++ b/source/iterators.tex @@ -4910,7 +4910,7 @@ \pnum \effects Initializes \tcode{v_} as if by -\tcode{v_\{in_place_index<$i$>, get<$i$>(x.v_)\}}, +\tcode{v_\{in_place_index<$i$>, std::get<$i$>(x.v_)\}}, where $i$ is \tcode{x.v_.index()}. \end{itemdescr} @@ -4932,9 +4932,9 @@ Equivalent to: \begin{itemize} \item If \tcode{v_.index() == x.v_.index()}, then -\tcode{get<$i$>(v_) = get<$i$>(x.v_)}. +\tcode{std::get<$i$>(v_) = std::get<$i$>(x.v_)}. -\item Otherwise, \tcode{v_.emplace<$i$>(get<$i$>(x.v_))}. +\item Otherwise, \tcode{v_.emplace<$i$>(std::get<$i$>(x.v_))}. \end{itemize} where $i$ is \tcode{x.v_.index()}. @@ -4959,7 +4959,7 @@ \pnum \effects -Equivalent to: \tcode{return *get(v_);} +Equivalent to: \tcode{return *std::get(v_);} \end{itemdescr} \indexlibrarymember{operator->}{common_iterator}% @@ -4987,19 +4987,19 @@ \begin{itemize} \item If \tcode{I} is a pointer type or if the expression -\tcode{get(v_).operator->()} is -well-formed, equivalent to: \tcode{return get(v_);} +\tcode{std::get(v_).operator->()} is +well-formed, equivalent to: \tcode{return std::get(v_);} \item Otherwise, if \tcode{iter_reference_t} is a reference type, equivalent to: \begin{codeblock} -auto&& tmp = *get(v_); +auto&& tmp = *std::get(v_); return addressof(tmp); \end{codeblock} \item Otherwise, equivalent to: -\tcode{return \exposid{proxy}(*get(v_));} where +\tcode{return \exposid{proxy}(*std::get(v_));} where \exposid{proxy} is the exposition-only class: \begin{codeblock} class @\exposid{proxy}@ { @@ -5029,7 +5029,7 @@ \pnum \effects -Equivalent to \tcode{++get(v_)}. +Equivalent to \tcode{++std::get(v_)}. \pnum \returns @@ -5064,7 +5064,7 @@ is \tcode{false}, equivalent to: \begin{codeblock} -return get(v_)++; +return std::get(v_)++; \end{codeblock} Otherwise, equivalent to: \begin{codeblock} @@ -5105,7 +5105,7 @@ \pnum \returns \tcode{true} if \tcode{$i$ == $j$}, -and otherwise \tcode{get<$i$>(x.v_) == get<$j$>(y.v_)}, +and otherwise \tcode{std::get<$i$>(x.v_) == std::get<$j$>(y.v_)}, where $i$ is \tcode{x.v_.index()} and $j$ is \tcode{y.v_.index()}. \end{itemdescr} @@ -5126,7 +5126,7 @@ \pnum \returns \tcode{true} if $i$ and $j$ are each \tcode{1}, and otherwise -\tcode{get<$i$>(x.v_) == get<$j$>(y.v_)}, where +\tcode{std::get<$i$>(x.v_) == std::get<$j$>(y.v_)}, where $i$ is \tcode{x.v_.index()} and $j$ is \tcode{y.v_.index()}. \end{itemdescr} @@ -5147,7 +5147,7 @@ \pnum \returns \tcode{0} if $i$ and $j$ are each \tcode{1}, and otherwise -\tcode{get<$i$>(x.v_) - get<$j$>(y.v_)}, where +\tcode{std::get<$i$>(x.v_) - std::get<$j$>(y.v_)}, where $i$ is \tcode{x.v_.index()} and $j$ is \tcode{y.v_.index()}. \end{itemdescr} @@ -5167,7 +5167,7 @@ \pnum \effects -Equivalent to: \tcode{return ranges::iter_move(get(i.v_));} +Equivalent to: \tcode{return ranges::iter_move(std::get(i.v_));} \end{itemdescr} \indexlibrarymember{iter_swap}{common_iterator}% @@ -5185,7 +5185,7 @@ \pnum \effects -Equivalent to \tcode{ranges::iter_swap(get(x.v_), get(y.v_))}. +Equivalent to \tcode{ranges::iter_swap(std::get(x.v_), std::get(y.v_))}. \end{itemdescr} \rSec2[default.sentinel]{Default sentinel} diff --git a/source/memory.tex b/source/memory.tex index 349c18b115..2fa63e646e 100644 --- a/source/memory.tex +++ b/source/memory.tex @@ -1054,8 +1054,8 @@ Equivalent to: \begin{codeblock} return uses_allocator_construction_args(alloc, piecewise_construct, - forward_as_tuple(get<0>(std::move(pr))), - forward_as_tuple(get<1>(std::move(pr)))); + forward_as_tuple(std::get<0>(std::move(pr))), + forward_as_tuple(std::get<1>(std::move(pr)))); \end{codeblock} \end{itemdescr} diff --git a/source/threads.tex b/source/threads.tex index f87cdc3884..8eeb95e28e 100644 --- a/source/threads.tex +++ b/source/threads.tex @@ -6970,7 +6970,7 @@ \pnum \effects For all \tcode{i} in \range{0}{sizeof...(MutexTypes)}, -\tcode{get(pm).unlock()}. +\tcode{std::get(pm).unlock()}. \end{itemdescr} \rSec3[thread.lock.unique]{Class template \tcode{unique_lock}} diff --git a/source/utilities.tex b/source/utilities.tex index e2998b7fb5..6581ca553a 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -834,29 +834,29 @@ \constraints \begin{itemize} \item -\tcode{is_constructible_v(\exposid{FWD}(p)))>} +\tcode{is_constructible_v(\exposid{FWD}(p)))>} is \tcode{true} and \item -\tcode{is_constructible_v(\exposid{FWD}(p)))>} +\tcode{is_constructible_v(\exposid{FWD}(p)))>} is \tcode{true}. \end{itemize} \pnum \effects -Initializes \tcode{first} with \tcode{get<0>(\exposid{FWD}(p))} and -\tcode{second} with \tcode{get<1>(\exposid{FWD}(p))}. +Initializes \tcode{first} with \tcode{std::get<0>(\exposid{FWD}(p))} and +\tcode{second} with \tcode{std::get<1>(\exposid{FWD}(p))}. \pnum \remarks The expression inside \keyword{explicit} is equivalent to: \begin{codeblock} -!is_convertible_v(@\exposid{FWD}@(p))), T1> || -!is_convertible_v(@\exposid{FWD}@(p))), T2> +!is_convertible_v(@\exposid{FWD}@(p))), T1> || +!is_convertible_v(@\exposid{FWD}@(p))), T2> \end{codeblock} The constructor is defined as deleted if \begin{codeblock} -reference_constructs_from_temporary_v(@\exposid{FWD}@(p)))> || -reference_constructs_from_temporary_v(@\exposid{FWD}@(p)))> +reference_constructs_from_temporary_v(@\exposid{FWD}@(p)))> || +reference_constructs_from_temporary_v(@\exposid{FWD}@(p)))> \end{codeblock} is \tcode{true}. \end{itemdescr} @@ -1723,7 +1723,7 @@ \pnum \effects For all $i$, initializes the $i^\text{th}$ element of \tcode{*this} with -\tcode{std::forward<$\tcode{T}_i$>(get<$i$>(u))}. +\tcode{std::forward<$\tcode{T}_i$>(std::get<$i$>(u))}. \end{itemdescr} \indexlibraryctor{tuple}% @@ -1745,7 +1745,7 @@ \item \tcode{sizeof...(Types)} equals \tcode{sizeof...(UTypes)}, and \item -\tcode{(is_constructible_v(\exposid{FWD}(u)))> \&\& ...)} +\tcode{(is_constructible_v(\exposid{FWD}(u)))> \&\& ...)} is \tcode{true}, and \item either \tcode{sizeof...(Types)} is not 1, or @@ -1759,17 +1759,17 @@ \pnum \effects For all $i$, initializes the $i^\textrm{th}$ element of \tcode{*this} -with \tcode{get<$i$>(\exposid{FWD}(u))}. +with \tcode{std::get<$i$>(\exposid{FWD}(u))}. \pnum \remarks The expression inside \keyword{explicit} is equivalent to: \begin{codeblock} -!(is_convertible_v(@\exposid{FWD}@(u))), Types> && ...) +!(is_convertible_v(@\exposid{FWD}@(u))), Types> && ...) \end{codeblock} The constructor is defined as deleted if \begin{codeblock} -(reference_constructs_from_temporary_v(@\exposid{FWD}@(u)))> || ...) +(reference_constructs_from_temporary_v(@\exposid{FWD}@(u)))> || ...) \end{codeblock} is \tcode{true}. \end{itemdescr} @@ -1792,27 +1792,27 @@ \item \tcode{sizeof...(Types)} is 2, \item -\tcode{is_constructible_v<$\tcode{T}_0$, decltype(get<0>(\exposid{FWD}(u)))>} is \tcode{true}, and +\tcode{is_constructible_v<$\tcode{T}_0$, decltype(std::get<0>(\exposid{FWD}(u)))>} is \tcode{true}, and \item -\tcode{is_constructible_v<$\tcode{T}_1$, decltype(get<1>(\exposid{FWD}(u)))>} is \tcode{true}. +\tcode{is_constructible_v<$\tcode{T}_1$, decltype(std::get<1>(\exposid{FWD}(u)))>} is \tcode{true}. \end{itemize} \pnum \effects -Initializes the first element with \tcode{get<0>(\exposid{FWD}(u))} and -the second element with \tcode{get<1>(\exposid{FWD}(\brk{}u))}. +Initializes the first element with \tcode{std::get<0>(\exposid{FWD}(u))}\\ +and the second element with \tcode{std::get<1>(\exposid{FWD}(\brk{}u))}. \pnum \remarks The expression inside \tcode{explicit} is equivalent to: \begin{codeblock} -!is_convertible_v(@\exposid{FWD}@(u))), @$\tcode{T}_0$@> || -!is_convertible_v(@\exposid{FWD}@(u))), @$\tcode{T}_1$@> +!is_convertible_v(@\exposid{FWD}@(u))), @$\tcode{T}_0$@> || +!is_convertible_v(@\exposid{FWD}@(u))), @$\tcode{T}_1$@> \end{codeblock} The constructor is defined as deleted if \begin{codeblock} -reference_constructs_from_temporary_v<@$\tcode{T}_0$@, decltype(get<0>(@\exposid{FWD}@(u)))> || -reference_constructs_from_temporary_v<@$\tcode{T}_1$@, decltype(get<1>(@\exposid{FWD}@(u)))> +reference_constructs_from_temporary_v<@$\tcode{T}_0$@, decltype(std::get<0>(@\exposid{FWD}@(u)))> || +reference_constructs_from_temporary_v<@$\tcode{T}_1$@, decltype(std::get<1>(@\exposid{FWD}@(u)))> \end{codeblock} is \tcode{true}. \end{itemdescr} @@ -1932,8 +1932,8 @@ \pnum \effects -For all $i$, assigns \tcode{std::forward<$\tcode{T}_i$>(get<$i$>(u))} to -\tcode{get<$i$>(*this)}. +For all $i$, assigns \tcode{std::forward<$\tcode{T}_i$>(std::get<$i$>(u))} to +\tcode{std::get<$i$>(*this)}. \pnum \returns @@ -1963,7 +1963,7 @@ \pnum \effects For all $i$, -assigns \tcode{std::forward(get<$i$>(u))} to \tcode{get<$i$>(*this)}. +assigns \tcode{std::forward(std::get<$i$>(u))} to \tcode{std::get<$i$>(*this)}. \pnum \returns @@ -2032,8 +2032,8 @@ \pnum \effects -For all $i$, assigns \tcode{std::forward<$\tcode{U}_i$>(get<$i$>(u))} to -\tcode{get<$i$>(*this)}. +For all $i$, assigns \tcode{std::forward<$\tcode{U}_i$>(std::get<$i$>(u))} to +\tcode{std::get<$i$>(*this)}. \pnum \returns @@ -2058,7 +2058,7 @@ \pnum \effects For all $i$, -assigns \tcode{std::forward(get<$i$>(u))} to \tcode{get<$i$>(*this)}. +assigns \tcode{std::forward(std::get<$i$>(u))} to \tcode{std::get<$i$>(*this)}. \pnum \returns @@ -2358,7 +2358,8 @@ template constexpr decltype(auto) @\placeholdernc{apply-impl}@(F&& f, Tuple&& t, index_sequence) { // \expos - return @\placeholdernc{INVOKE}@(std::forward(f), get(std::forward(t))...); // see \ref{func.require} + return @\placeholdernc{INVOKE}@(std::forward(f), std::get(std::forward(t))...); + // see \ref{func.require} } } \end{codeblock} @@ -2380,7 +2381,7 @@ \mandates If \tcode{tuple_size_v>} is 1, then -\tcode{reference_constructs_from_temporary_v(declval()))>} +\tcode{reference_constructs_from_temporary_v(declval()))>} is \tcode{false}. \pnum @@ -2389,9 +2390,9 @@ \begin{codeblock} namespace std { template - requires is_constructible_v(declval()))...> + requires is_constructible_v(declval()))...> constexpr T @\placeholdernc{make-from-tuple-impl}@(Tuple&& t, index_sequence) { // \expos - return T(get(std::forward(t))...); + return T(std::get(std::forward(t))...); } } \end{codeblock} @@ -2584,9 +2585,9 @@ \begin{example} \begin{codeblock} const tuple t(1, 2, 3.4, 5.6); -const int& i1 = get(t); // OK, \tcode{i1} has value \tcode{1} -const int& i2 = get(t); // OK, \tcode{i2} has value \tcode{2} -const double& d = get(t); // error: type \tcode{double} is not unique within \tcode{t} +const int& i1 = std::get(t); // OK, \tcode{i1} has value \tcode{1} +const int& i2 = std::get(t); // OK, \tcode{i2} has value \tcode{2} +const double& d = std::get(t); // error: type \tcode{double} is not unique within \tcode{t} \end{codeblock} \end{example} \end{itemdescr} @@ -2613,14 +2614,14 @@ \mandates For all \tcode{i}, where $0 \leq \tcode{i} < \tcode{sizeof...(TTypes)}$, -\tcode{get(t) == get(u)} is a valid expression +\tcode{std::get(t) == std::get(u)} is a valid expression returning a type that is convertible to \tcode{bool}. \tcode{sizeof...(TTypes)} equals \tcode{sizeof...(UTypes)}. \pnum \returns -\tcode{true} if \tcode{get(t) == get(u)} for all +\tcode{true} if \tcode{std::get(t) == std::get(u)} for all \tcode{i}, otherwise \tcode{false}. For any two zero-length tuples \tcode{e} and \tcode{f}, \tcode{e == f} returns \tcode{true}. @@ -2647,7 +2648,7 @@ \tcode{t <=> u} returns \tcode{strong_ordering::equal}. Otherwise, equivalent to: \begin{codeblock} -if (auto c = @\placeholder{synth-three-way}@(get<0>(t), get<0>(u)); c != 0) return c; +if (auto c = @\placeholder{synth-three-way}@(std::get<0>(t), std::get<0>(u)); c != 0) return c; return @$\tcode{t}_\mathrm{tail}$@ <=> @$\tcode{u}_\mathrm{tail}$@; \end{codeblock} where $\tcode{r}_\mathrm{tail}$ for some tuple \tcode{r} @@ -4696,7 +4697,7 @@ \effects If \tcode{w} holds a value, initializes the \tcode{variant} to hold the same alternative as \tcode{w} and direct-initializes the contained value -with \tcode{get(w)}, where \tcode{j} is \tcode{w.index()}. +with \tcode{std::get(w)}, where \tcode{j} is \tcode{w.index()}. Otherwise, initializes the \tcode{variant} to not hold a value. \pnum @@ -4725,7 +4726,7 @@ \effects If \tcode{w} holds a value, initializes the \tcode{variant} to hold the same alternative as \tcode{w} and direct-initializes the contained value with -\tcode{get(std::move(w))}, where \tcode{j} is \tcode{w.index()}. +\tcode{std::get(std::move(w))}, where \tcode{j} is \tcode{w.index()}. Otherwise, initializes the \tcode{variant} to not hold a value. \pnum @@ -4983,7 +4984,7 @@ Otherwise, if either \tcode{is_nothrow_copy_constructible_v<$\tcode{T}_j$>} is \tcode{true} or \tcode{is_nothrow_move_con\-structible_v<$\tcode{T}_j$>} is \tcode{false}, -equivalent to \tcode{emplace<$j$>(get<$j$>(rhs))}. +equivalent to \tcode{emplace<$j$>(std::get<$j$>(rhs))}. \item Otherwise, equivalent to \tcode{operator=(variant(rhs))}. \end{itemize} @@ -5032,10 +5033,10 @@ Otherwise, if \tcode{*this} holds a value but \tcode{rhs} does not, destroys the value contained in \tcode{*this} and sets \tcode{*this} to not hold a value. \item -Otherwise, if \tcode{index() == $j$}, assigns \tcode{get<$j$>(std::move(rhs))} to +Otherwise, if \tcode{index() == $j$}, assigns \tcode{std::get<$j$>(std::move(rhs))} to the value contained in \tcode{*this}. \item -Otherwise, equivalent to \tcode{emplace<$j$>(get<$j$>(std::move(rhs)))}. +Otherwise, equivalent to \tcode{emplace<$j$>(std::get<$j$>(std::move(rhs)))}. \end{itemize} \pnum @@ -5324,7 +5325,8 @@ \item If \tcode{valueless_by_exception() \&\& rhs.valueless_by_exception()} no effect. \item -Otherwise, if \tcode{index() == rhs.index()}, calls \tcode{swap(get<$i$>(*this), get<$i$>(rhs))} where $i$ is \tcode{index()}. +Otherwise, if \tcode{index() == rhs.index()},\\ +calls \tcode{swap(std::get<$i$>(*this), std::get<$i$>(rhs))} where $i$ is \tcode{index()}. \item Otherwise, exchanges values of \tcode{rhs} and \tcode{*this}. \end{itemize} @@ -5332,7 +5334,8 @@ \pnum \throws If \tcode{index() == rhs.index()}, -any exception thrown by \tcode{swap(get<$i$>(*this), get<$i$>(rhs))} +any exception thrown by\\ +\tcode{swap(std::get<$i$>(*this), std::get<$i$>(rhs))} with $i$ being \tcode{index()}. Otherwise, any exception thrown by the move constructor of $\tcode{T}_i$ or $\tcode{T}_j$ @@ -5340,7 +5343,8 @@ \pnum \remarks -If an exception is thrown during the call to function \tcode{swap(get<$i$>(*this), get<$i$>(rhs))}, +If an exception is thrown during the call to function\\ +tcode{swap(std::get<$i$>(*this), std::get<$i$>(rhs))}, the states of the contained values of \tcode{*this} and of \tcode{rhs} are determined by the exception safety guarantee of \tcode{swap} for lvalues of $\tcode{T}_i$ with $i$ being \tcode{index()}. @@ -5529,14 +5533,14 @@ \begin{itemdescr} \pnum \mandates -\tcode{get<$i$>(v) == get<$i$>(w)} is a valid expression that is +\tcode{std::get<$i$>(v) == std::get<$i$>(w)} is a valid expression that is convertible to \tcode{bool}, for all $i$. \pnum \returns If \tcode{v.index() != w.index()}, \tcode{false}; otherwise if \tcode{v.valueless_by_exception()}, \tcode{true}; -otherwise \tcode{get<$i$>(v) == get<$i$>(w)} with $i$ being \tcode{v.index()}. +otherwise \tcode{std::get<$i$>(v) == std::get<$i$>(w)} with $i$ being \tcode{v.index()}. \end{itemdescr} \indexlibrarymember{operator"!=}{variant}% @@ -5548,14 +5552,14 @@ \begin{itemdescr} \pnum \mandates -\tcode{get<$i$>(v) != get<$i$>(w)} is a valid expression that is +\tcode{std::get<$i$>(v) != std::get<$i$>(w)} is a valid expression that is convertible to \tcode{bool}, for all $i$. \pnum \returns If \tcode{v.index() != w.index()}, \tcode{true}; otherwise if \tcode{v.valueless_by_exception()}, \tcode{false}; -otherwise \tcode{get<$i$>(v) != get<$i$>(w)} with $i$ being \tcode{v.index()}. +otherwise \tcode{std::get<$i$>(v) != std::get<$i$>(w)} with $i$ being \tcode{v.index()}. \end{itemdescr} \indexlibrarymember{operator<}{variant}% @@ -5567,7 +5571,7 @@ \begin{itemdescr} \pnum \mandates -\tcode{get<$i$>(v) < get<$i$>(w)} is a valid expression that is +\tcode{std::get<$i$>(v) < std::get<$i$>(w)} is a valid expression that is convertible to \tcode{bool}, for all $i$. \pnum @@ -5576,7 +5580,7 @@ otherwise if \tcode{v.valueless_by_exception()}, \tcode{true}; otherwise, if \tcode{v.index() < w.index()}, \tcode{true}; otherwise if \tcode{v.index() > w.index()}, \tcode{false}; -otherwise \tcode{get<$i$>(v) < get<$i$>(w)} with $i$ being \tcode{v.index()}. +otherwise \tcode{std::get<$i$>(v) < std::get<$i$>(w)} with $i$ being \tcode{v.index()}. \end{itemdescr} \indexlibrarymember{operator>}{variant}% @@ -5588,7 +5592,7 @@ \begin{itemdescr} \pnum \mandates -\tcode{get<$i$>(v) > get<$i$>(w)} is a valid expression that is +\tcode{std::get<$i$>(v) > std::get<$i$>(w)} is a valid expression that is convertible to \tcode{bool}, for all $i$. \pnum @@ -5597,7 +5601,7 @@ otherwise if \tcode{w.valueless_by_exception()}, \tcode{true}; otherwise, if \tcode{v.index() > w.index()}, \tcode{true}; otherwise if \tcode{v.index() < w.index()}, \tcode{false}; -otherwise \tcode{get<$i$>(v) > get<$i$>(w)} with $i$ being \tcode{v.index()}. +otherwise \tcode{std::get<$i$>(v) > std::get<$i$>(w)} with $i$ being \tcode{v.index()}. \end{itemdescr} \indexlibrarymember{operator<=}{variant}% @@ -5609,7 +5613,7 @@ \begin{itemdescr} \pnum \mandates -\tcode{get<$i$>(v) <= get<$i$>(w)} is a valid expression that is +\tcode{std::get<$i$>(v) <= std::get<$i$>(w)} is a valid expression that is convertible to \tcode{bool}, for all $i$. \pnum @@ -5618,7 +5622,7 @@ otherwise if \tcode{w.valueless_by_exception()}, \tcode{false}; otherwise, if \tcode{v.index() < w.index()}, \tcode{true}; otherwise if \tcode{v.index() > w.index()}, \tcode{false}; -otherwise \tcode{get<$i$>(v) <= get<$i$>(w)} with $i$ being \tcode{v.index()}. +otherwise \tcode{std::get<$i$>(v) <= std::get<$i$>(w)} with $i$ being \tcode{v.index()}. \end{itemdescr} \indexlibrarymember{operator>=}{variant}% @@ -5630,7 +5634,7 @@ \begin{itemdescr} \pnum \mandates -\tcode{get<$i$>(v) >= get<$i$>(w)} is a valid expression that is +\tcode{std::get<$i$>(v) >= std::get<$i$>(w)} is a valid expression that is convertible to \tcode{bool}, for all $i$. \pnum @@ -5639,7 +5643,7 @@ otherwise if \tcode{v.valueless_by_exception()}, \tcode{false}; otherwise, if \tcode{v.index() > w.index()}, \tcode{true}; otherwise if \tcode{v.index() < w.index()}, \tcode{false}; -otherwise \tcode{get<$i$>(v) >= get<$i$>(w)} with $i$ being \tcode{v.index()}. +otherwise \tcode{std::get<$i$>(v) >= std::get<$i$>(w)} with $i$ being \tcode{v.index()}. \end{itemdescr} \indexlibrarymember{operator<=>}{variant}% @@ -5659,7 +5663,7 @@ if (v.valueless_by_exception()) return strong_ordering::less; if (w.valueless_by_exception()) return strong_ordering::greater; if (auto c = v.index() <=> w.index(); c != 0) return c; -return get<@$i$@>(v) <=> get<@$i$@>(w); +return std::get<@$i$@>(v) <=> std::get<@$i$@>(w); \end{codeblock} with $i$ being \tcode{v.index()}. \end{itemdescr} @@ -5707,11 +5711,11 @@ for all $0 \leq i < n$. For each valid pack $m$, let $e(m)$ denote the expression: \begin{codeblock} -@\placeholder{INVOKE}@(std::forward(vis), get<@$m$@>(std::forward(vars))...) // see \ref{func.require} +@\placeholder{INVOKE}@(std::forward(vis), std::get<@$m$@>(std::forward(vars))...) // see \ref{func.require} \end{codeblock} for the first form and \begin{codeblock} -@\placeholder{INVOKE}@(std::forward(vis), get<@$m$@>(std::forward(vars))...) // see \ref{func.require} +@\placeholder{INVOKE}@(std::forward(vis), std::get<@$m$@>(std::forward(vars))...) // see \ref{func.require} \end{codeblock} for the second form.