diff --git a/source/utilities.tex b/source/utilities.tex index e107c47f71..f1029cea25 100644 --- a/source/utilities.tex +++ b/source/utilities.tex @@ -3984,7 +3984,12 @@ \begin{itemdescr} \pnum Let $\tcode{T}_j$ be a type that is determined as follows: -build an imaginary function \tcode{\placeholdernc{FUN}($\tcode{T}_i$)} for each alternative type $\tcode{T}_i$. The overload \tcode{\placeholdernc{FUN}($\tcode{T}_j$)} selected by overload +build an imaginary function \tcode{\placeholdernc{FUN}($\tcode{T}_i$)} +for each alternative type $\tcode{T}_i$ +for which \tcode{$\tcode{T}_i$ x[] =} \tcode{\{std::forward(t)\};} +is well-formed for some invented variable \tcode{x} and, +if $\tcode{T}_i$ is \cv~\tcode{bool}, \tcode{remove_cvref_t} is \tcode{bool}. +The overload \tcode{\placeholdernc{FUN}($\tcode{T}_j$)} selected by overload resolution for the expression \tcode{\placeholdernc{FUN}(std::forward(\brk{}t))} defines the alternative $\tcode{T}_j$ which is the type of the contained value after construction. @@ -4288,8 +4293,12 @@ \begin{itemdescr} \pnum Let $\tcode{T}_j$ be a type that is determined as follows: -build an imaginary function \tcode{\placeholdernc{FUN}($\tcode{T}_i$)} for each alternative type -$\tcode{T}_i$. The overload \tcode{\placeholdernc{FUN}($\tcode{T}_j$)} selected by overload +build an imaginary function \tcode{\placeholdernc{FUN}($\tcode{T}_i$)} +for each alternative type $\tcode{T}_i$ +for which \tcode{$\tcode{T}_i$ x[] =} \tcode{\{std::forward(t)\};} +is well-formed for some invented variable \tcode{x} and, +if $\tcode{T}_i$ is \cv~\tcode{bool}, \tcode{remove_cvref_t} is \tcode{bool}. +The overload \tcode{\placeholdernc{FUN}($\tcode{T}_j$)} selected by overload resolution for the expression \tcode{\placeholdernc{FUN}(std::forward(\brk{}t))} defines the alternative $\tcode{T}_j$ which is the type of the contained value after assignment.