|
4281 | 4281 | \begin{itemdescr}
|
4282 | 4282 | \pnum
|
4283 | 4283 | Let \tcode{T}$_j$ be a type that is determined as follows:
|
4284 |
| -build an imaginary function \tcode{\textit{FUN}(\tcode{T}$_i$)} for each alternative type \tcode{T}$_i$. The overload \tcode{\textit{FUN}(\tcode{T}$_j$)} selected by overload |
4285 |
| -resolution for the expression \tcode{\textit{FUN}(std::forward<T>(\brk{}t))} defines |
| 4284 | +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 |
| 4285 | +resolution for the expression \tcode{\placeholdernc{FUN}(std::forward<T>(\brk{}t))} defines |
4286 | 4286 | the alternative \tcode{T}$_j$ which is the type of the contained value after
|
4287 | 4287 | construction.
|
4288 | 4288 |
|
|
4309 | 4309 | nor a specialization of \tcode{in_place_index_t},
|
4310 | 4310 | unless \tcode{is_constructible_v<T$_j$, T>} is \tcode{true},
|
4311 | 4311 | and unless the expression
|
4312 |
| -\tcode{\textit{FUN}(}\brk\tcode{std::forward<T>(t))} (with \tcode{\textit{FUN}} |
| 4312 | +\tcode{\placeholdernc{FUN}(}\brk\tcode{std::forward<T>(t))} (with \tcode{\placeholdernc{FUN}} |
4313 | 4313 | being the above-mentioned set of imaginary functions) is well formed.
|
4314 | 4314 |
|
4315 | 4315 | \pnum
|
|
4589 | 4589 | \begin{itemdescr}
|
4590 | 4590 | \pnum
|
4591 | 4591 | Let \tcode{T}$_j$ be a type that is determined as follows:
|
4592 |
| -build an imaginary function \tcode{\textit{FUN}(T$_i$)} for each alternative type |
4593 |
| -\tcode{T}$_i$. The overload \tcode{\textit{FUN}(T$_j$)} selected by overload |
4594 |
| -resolution for the expression \tcode{\textit{FUN}(std::forward<T>(\brk{}t))} defines |
| 4592 | +build an imaginary function \tcode{\placeholdernc{FUN}(T$_i$)} for each alternative type |
| 4593 | +\tcode{T}$_i$. The overload \tcode{\placeholdernc{FUN}(T$_j$)} selected by overload |
| 4594 | +resolution for the expression \tcode{\placeholdernc{FUN}(std::forward<T>(\brk{}t))} defines |
4595 | 4595 | the alternative \tcode{T}$_j$ which is the type of the contained value after
|
4596 | 4596 | assignment.
|
4597 | 4597 |
|
|
4617 | 4617 | This function shall not participate in overload resolution unless
|
4618 | 4618 | \tcode{is_same_v<decay_t<T>, variant>} is \tcode{false}, unless
|
4619 | 4619 | \tcode{is_assignable_v<T$_j$\&, T> \&\& is_constructible_v<T$_j$, T>} is \tcode{true},
|
4620 |
| -and unless the expression \tcode{\textit{FUN}(std::forward<T>(t))} (with |
4621 |
| -\tcode{\textit{FUN}} being the above-mentioned set of imaginary functions) |
| 4620 | +and unless the expression \tcode{\placeholdernc{FUN}(std::forward<T>(t))} (with |
| 4621 | +\tcode{\placeholdernc{FUN}} being the above-mentioned set of imaginary functions) |
4622 | 4622 | is well formed.
|
4623 | 4623 |
|
4624 | 4624 | \pnum
|
|
4632 | 4632 |
|
4633 | 4633 | \pnum
|
4634 | 4634 | The expression inside \tcode{noexcept} is equivalent to:
|
4635 |
| -\tcode{is_nothrow_assignable_v<T$_j$\&, T> \&\& is_nothrow_constructible_v<T$_j$, T>}. |
| 4635 | +\begin{codeblock} |
| 4636 | +is_nothrow_assignable_v<T@$_j$@&, T> && is_nothrow_constructible_v<T@$_j$@, T> |
| 4637 | +\end{codeblock} |
4636 | 4638 | \begin{itemize}
|
4637 | 4639 | \item If an exception is thrown during the assignment of \tcode{std::forward<T>(t)}
|
4638 | 4640 | to the value contained in \tcode{*this}, the state of the contained value and
|
|
0 commit comments