|
4220 | 4220 |
|
4221 | 4221 | \pnum
|
4222 | 4222 | In the descriptions that follow, let $i$ be in the range \range{0}{sizeof...(Types)},
|
4223 |
| -and $T_i$ be the $i^{th}$ type in \tcode{Types...}. |
| 4223 | +and \tcode{T}$_i$ be the $i^{th}$ type in \tcode{Types...}. |
4224 | 4224 |
|
4225 | 4225 | \indexlibrary{\idxcode{variant}!constructor}%
|
4226 | 4226 | \begin{itemdecl}
|
|
4230 | 4230 | \begin{itemdescr}
|
4231 | 4231 | \pnum
|
4232 | 4232 | \effects
|
4233 |
| -Constructs a \tcode{variant} holding a value-initialized value of type $T_0$. |
| 4233 | +Constructs a \tcode{variant} holding a value-initialized value of type \tcode{T}$_0$. |
4234 | 4234 |
|
4235 | 4235 | \pnum
|
4236 | 4236 | \postconditions
|
4237 | 4237 | \tcode{valueless_by_exception()} is \tcode{false} and \tcode{index()} is \tcode{0}.
|
4238 | 4238 |
|
4239 | 4239 | \pnum
|
4240 | 4240 | \throws
|
4241 |
| -Any exception thrown by the value-initialization of $T_0$. |
| 4241 | +Any exception thrown by the value-initialization of \tcode{T}$_0$. |
4242 | 4242 |
|
4243 | 4243 | \pnum
|
4244 | 4244 | \remarks
|
4245 | 4245 | This function shall be \tcode{constexpr} if and only if the
|
4246 |
| -value-initialization of the alternative type $T_0$ would satisfy the |
| 4246 | +value-initialization of the alternative type \tcode{T}$_0$ would satisfy the |
4247 | 4247 | requirements for a \tcode{constexpr} function.
|
4248 | 4248 | The expression inside \tcode{noexcept} is equivalent to
|
4249 |
| -\tcode{is_nothrow_default_constructible_v<$T_0$>}. |
| 4249 | +\tcode{is_nothrow_default_constructible_v<\tcode{T}$_0$>}. |
4250 | 4250 | This function shall not participate in overload resolution unless
|
4251 |
| -\tcode{is_default_constructible_v<$T_0$>} is \tcode{true}. |
| 4251 | +\tcode{is_default_constructible_v<\tcode{T}$_0$>} is \tcode{true}. |
4252 | 4252 | \begin{note} See also class \tcode{monostate}. \end{note}
|
4253 | 4253 | \end{itemdescr}
|
4254 | 4254 |
|
|
4267 | 4267 |
|
4268 | 4268 | \pnum
|
4269 | 4269 | \throws
|
4270 |
| -Any exception thrown by direct-initializing any $T_i$ for all $i$. |
| 4270 | +Any exception thrown by direct-initializing any \tcode{T}$_i$ for all $i$. |
4271 | 4271 |
|
4272 | 4272 | \pnum
|
4273 | 4273 | \remarks
|
4274 | 4274 | This function shall not participate in overload resolution unless
|
4275 |
| -\tcode{is_copy_constructible_v<$T_i$>} is \tcode{true} for all $i$. |
| 4275 | +\tcode{is_copy_constructible_v<\tcode{T}$_i$>} is \tcode{true} for all $i$. |
4276 | 4276 | \end{itemdescr}
|
4277 | 4277 |
|
4278 | 4278 | \indexlibrary{\idxcode{variant}!constructor}%
|
|
4290 | 4290 |
|
4291 | 4291 | \pnum
|
4292 | 4292 | \throws
|
4293 |
| -Any exception thrown by move-constructing any $T_i$ for all $i$. |
| 4293 | +Any exception thrown by move-constructing any \tcode{T}$_i$ for all $i$. |
4294 | 4294 |
|
4295 | 4295 | \pnum
|
4296 | 4296 | \remarks
|
4297 | 4297 | The expression inside \tcode{noexcept} is equivalent to the logical AND of
|
4298 |
| -\tcode{is_nothrow_move_constructible_v<$T_i$>} for all $i$. |
| 4298 | +\tcode{is_nothrow_move_constructible_v<\tcode{T}$_i$>} for all $i$. |
4299 | 4299 | This function shall not participate in overload resolution unless
|
4300 |
| -\tcode{is_move_constructible_v<$T_i$>} is \tcode{true} for all $i$. |
| 4300 | +\tcode{is_move_constructible_v<\tcode{T}$_i$>} is \tcode{true} for all $i$. |
4301 | 4301 | \end{itemdescr}
|
4302 | 4302 |
|
4303 | 4303 | \indexlibrary{\idxcode{variant}!constructor}%
|
|
4307 | 4307 |
|
4308 | 4308 | \begin{itemdescr}
|
4309 | 4309 | \pnum
|
4310 |
| -Let $T_j$ be a type that is determined as follows: |
4311 |
| -build an imaginary function \tcode{\textit{FUN}($T_i$)} for each alternative type $T_i$. The overload \tcode{\textit{FUN}($T_j$)} selected by overload |
| 4310 | +Let \tcode{T}$_j$ be a type that is determined as follows: |
| 4311 | +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 |
4312 | 4312 | resolution for the expression \tcode{\textit{FUN}(std::forward<T>(\brk{}t))} defines
|
4313 |
| -the alternative $T_j$ which is the type of the contained value after |
| 4313 | +the alternative \tcode{T}$_j$ which is the type of the contained value after |
4314 | 4314 | construction.
|
4315 | 4315 |
|
4316 | 4316 | \pnum
|
4317 | 4317 | \effects
|
4318 |
| -Initializes \tcode{*this} to hold the alternative type $T_j$ and |
| 4318 | +Initializes \tcode{*this} to hold the alternative type \tcode{T}$_j$ and |
4319 | 4319 | direct-initializes the contained value as if direct-non-list-initializing it
|
4320 | 4320 | with \tcode{std::forward<T>(t)}.
|
4321 | 4321 |
|
4322 | 4322 | \pnum
|
4323 | 4323 | \postconditions
|
4324 |
| -\tcode{holds_alternative<$T_j$>(*this)} is \tcode{true}. |
| 4324 | +\tcode{holds_alternative<T$_j$>(*this)} is \tcode{true}. |
4325 | 4325 |
|
4326 | 4326 | \pnum
|
4327 | 4327 | \throws
|
4328 |
| -Any exception thrown by the initialization of the selected alternative $T_j$. |
| 4328 | +Any exception thrown by the initialization of the selected alternative \tcode{T}$_j$. |
4329 | 4329 |
|
4330 | 4330 | \pnum
|
4331 | 4331 | \remarks
|
|
4334 | 4334 | unless \tcode{decay_t<T>} is neither
|
4335 | 4335 | a specialization of \tcode{in_place_type_t}
|
4336 | 4336 | nor a specialization of \tcode{in_place_index_t},
|
4337 |
| -unless \tcode{is_constructible_v<$T_j$, T>} is \tcode{true}, |
| 4337 | +unless \tcode{is_constructible_v<T$_j$, T>} is \tcode{true}, |
4338 | 4338 | and unless the expression
|
4339 | 4339 | \tcode{\textit{FUN}(}\brk\tcode{std::forward<T>(t))} (with \tcode{\textit{FUN}}
|
4340 | 4340 | being the above-mentioned set of imaginary functions) is well formed.
|
|
4349 | 4349 |
|
4350 | 4350 | \pnum
|
4351 | 4351 | The expression inside \tcode{noexcept} is equivalent to
|
4352 |
| -\tcode{is_nothrow_constructible_v<$T_j$, T>}. |
4353 |
| -If $T_j$'s selected constructor is a constexpr constructor, |
| 4352 | +\tcode{is_nothrow_constructible_v<T$_j$, T>}. |
| 4353 | +If \tcode{T}$_j$'s selected constructor is a constexpr constructor, |
4354 | 4354 | this constructor shall be a constexpr constructor.
|
4355 | 4355 | \end{itemdescr}
|
4356 | 4356 |
|
|
4418 | 4418 | \begin{itemdescr}
|
4419 | 4419 | \pnum
|
4420 | 4420 | \effects
|
4421 |
| -Initializes the contained value as if constructing an object of type $T_I$ |
| 4421 | +Initializes the contained value as if constructing an object of type \tcode{T}$_I$ |
4422 | 4422 | with the arguments \tcode{std::forward<Args>(args)...}.
|
4423 | 4423 |
|
4424 | 4424 | \pnum
|
|
4427 | 4427 |
|
4428 | 4428 | \pnum
|
4429 | 4429 | \throws
|
4430 |
| -Any exception thrown by calling the selected constructor of $T_I$. |
| 4430 | +Any exception thrown by calling the selected constructor of \tcode{T}$_I$. |
4431 | 4431 |
|
4432 | 4432 | \pnum
|
4433 | 4433 | \remarks
|
4434 | 4434 | This function shall not participate in overload resolution unless \tcode{I} is
|
4435 |
| -less than \tcode{sizeof...(Types)} and \tcode{is_constructible_v<$T_I$, Args...>} is \tcode{true}. |
4436 |
| -If $T_I$'s selected constructor is a \tcode{constexpr} constructor, this |
| 4435 | +less than \tcode{sizeof...(Types)} and \tcode{is_constructible_v<T$_I$, Args...>} is \tcode{true}. |
| 4436 | +If \tcode{T}$_I$'s selected constructor is a \tcode{constexpr} constructor, this |
4437 | 4437 | constructor shall be a constexpr constructor.
|
4438 | 4438 | \end{itemdescr}
|
4439 | 4439 |
|
|
4447 | 4447 | \pnum
|
4448 | 4448 | \effects
|
4449 | 4449 | Initializes the contained value as if constructing an object of type
|
4450 |
| -$T_I$ with the arguments \tcode{il, std::forward<Args>(args)...}. |
| 4450 | +\tcode{T}$_I$ with the arguments \tcode{il, std::forward<Args>(args)...}. |
4451 | 4451 |
|
4452 | 4452 | \pnum
|
4453 | 4453 | \postconditions
|
|
4457 | 4457 | \remarks
|
4458 | 4458 | This function shall not participate in overload resolution unless \tcode{I} is
|
4459 | 4459 | less than \tcode{sizeof...(Types)} and
|
4460 |
| -\tcode{is_constructible_v<$T_I$, initializer_list<U>\&, Args...>} is \tcode{true}. |
4461 |
| -If $T_I$'s selected constructor is a \tcode{constexpr} constructor, this |
| 4460 | +\tcode{is_constructible_v<T$_I$, initializer_list<U>\&, Args...>} is \tcode{true}. |
| 4461 | +If \tcode{T}$_I$'s selected constructor is a \tcode{constexpr} constructor, this |
4462 | 4462 | constructor shall be a constexpr constructor.
|
4463 | 4463 | \end{itemdescr}
|
4464 | 4464 |
|
|
4511 | 4511 |
|
4512 | 4512 | \pnum
|
4513 | 4513 | \remarks
|
4514 |
| -If \tcode{is_trivially_destructible_v<$T_i$> == true} for all $T_i$ |
| 4514 | +If \tcode{is_trivially_destructible_v<T$_i$> == true} for all \tcode{T}$_i$ |
4515 | 4515 | then this destructor shall be a trivial destructor.
|
4516 | 4516 | \end{itemdescr}
|
4517 | 4517 |
|
|
4538 | 4538 | copies the value contained in \tcode{rhs} to a temporary, then destroys any
|
4539 | 4539 | value contained in \tcode{*this}. Sets \tcode{*this} to hold the same
|
4540 | 4540 | alternative index as \tcode{rhs} and initializes the value contained in
|
4541 |
| -\tcode{*this} as if direct-non-list-initializing an object of type $T_j$ |
4542 |
| -with \tcode{std::forward<$T_j$>(TMP),} with \tcode{TMP} being the temporary and |
| 4541 | +\tcode{*this} as if direct-non-list-initializing an object of type \tcode{T}$_j$ |
| 4542 | +with \tcode{std::forward<T$_j$>(TMP),} with \tcode{TMP} being the temporary and |
4543 | 4543 | $j$ being \tcode{rhs.index()}.
|
4544 | 4544 | \end{itemize}
|
4545 | 4545 |
|
|
4552 | 4552 | \pnum
|
4553 | 4553 | \remarks
|
4554 | 4554 | This function shall not participate in overload resolution unless
|
4555 |
| -\tcode{is_copy_constructible_v<$T_i$> \&\& is_move_constructible_v<$T_i$> \&\& is_copy_assignable_v<$T_i$>} |
| 4555 | +\tcode{is_copy_constructible_v<T$_i$> \&\& is_move_constructible_v<T$_i$> \&\& is_copy_assignable_v<T$_i$>} |
4556 | 4556 | is \tcode{true} for all $i$.
|
4557 | 4557 | \begin{itemize}
|
4558 |
| -\item If an exception is thrown during the call to $T_j$'s copy assignment, |
| 4558 | +\item If an exception is thrown during the call to \tcode{T}$_j$'s copy assignment, |
4559 | 4559 | the state of the contained value is as defined by the exception safety
|
4560 |
| -guarantee of $T_j$'s copy assignment; \tcode{index()} will be $j$. |
4561 |
| -\item If an exception is thrown during the call to $T_j$'s copy construction |
| 4560 | +guarantee of \tcode{T}$_j$'s copy assignment; \tcode{index()} will be $j$. |
| 4561 | +\item If an exception is thrown during the call to \tcode{T}$_j$'s copy construction |
4562 | 4562 | (with $j$ being \tcode{rhs.index()}), \tcode{*this} will remain unchanged.
|
4563 |
| -\item If an exception is thrown during the call to $T_j$'s move construction, |
| 4563 | +\item If an exception is thrown during the call to \tcode{T}$_j$'s move construction, |
4564 | 4564 | the \tcode{variant} will hold no value.
|
4565 | 4565 | \end{itemize}
|
4566 | 4566 | \end{itemdescr}
|
|
4585 | 4585 | \item
|
4586 | 4586 | destroys any value contained in \tcode{*this}. Sets \tcode{*this} to hold the
|
4587 | 4587 | same alternative index as \tcode{rhs} and initializes the value contained in
|
4588 |
| -\tcode{*this} as if direct-non-list-initializing an object of type $T_j$ |
| 4588 | +\tcode{*this} as if direct-non-list-initializing an object of type \tcode{T}$_j$ |
4589 | 4589 | with \tcode{get<$j$>(std::move(rhs))} with $j$ being \tcode{rhs.index()}.
|
4590 | 4590 | \end{itemize}
|
4591 | 4591 |
|
|
4595 | 4595 | \pnum
|
4596 | 4596 | \remarks
|
4597 | 4597 | This function shall not participate in overload resolution unless
|
4598 |
| -\tcode{is_move_constructible_v<$T_i$> \&\& is_move_assignable_v<$T_i$>} is |
| 4598 | +\tcode{is_move_constructible_v<T$_i$> \&\& is_move_assignable_v<T$_i$>} is |
4599 | 4599 | \tcode{true} for all $i$.
|
4600 | 4600 | The expression inside \tcode{noexcept} is equivalent to:
|
4601 |
| -\tcode{is_nothrow_move_constructible_v<$T_i$> \&\& is_nothrow_move_assignable_v<$T_i$>} for all $i$. |
| 4601 | +\tcode{is_nothrow_move_constructible_v<T$_i$> \&\& is_nothrow_move_assignable_v<T$_i$>} for all $i$. |
4602 | 4602 | \begin{itemize}
|
4603 |
| -\item If an exception is thrown during the call to $T_j$'s move construction |
| 4603 | +\item If an exception is thrown during the call to \tcode{T}$_j$'s move construction |
4604 | 4604 | (with $j$ being \tcode{rhs.index())}, the \tcode{variant} will hold no value.
|
4605 |
| -\item If an exception is thrown during the call to $T_j$'s move assignment, |
| 4605 | +\item If an exception is thrown during the call to \tcode{T}$_j$'s move assignment, |
4606 | 4606 | the state of the contained value is as defined by the exception safety
|
4607 |
| -guarantee of $T_j$'s move assignment; \tcode{index()} will be $j$. |
| 4607 | +guarantee of \tcode{T}$_j$'s move assignment; \tcode{index()} will be $j$. |
4608 | 4608 | \end{itemize}
|
4609 | 4609 | \end{itemdescr}
|
4610 | 4610 |
|
|
4615 | 4615 |
|
4616 | 4616 | \begin{itemdescr}
|
4617 | 4617 | \pnum
|
4618 |
| -Let $T_j$ be a type that is determined as follows: |
4619 |
| -build an imaginary function \tcode{\textit{FUN}($T_i$)} for each alternative type |
4620 |
| -$T_i$. The overload \tcode{\textit{FUN}($T_j$)} selected by overload |
| 4618 | +Let \tcode{T}$_j$ be a type that is determined as follows: |
| 4619 | +build an imaginary function \tcode{\textit{FUN}(T$_i$)} for each alternative type |
| 4620 | +\tcode{T}$_i$. The overload \tcode{\textit{FUN}(T$_j$)} selected by overload |
4621 | 4621 | resolution for the expression \tcode{\textit{FUN}(std::forward<T>(\brk{}t))} defines
|
4622 |
| -the alternative $T_j$ which is the type of the contained value after |
| 4622 | +the alternative \tcode{T}$_j$ which is the type of the contained value after |
4623 | 4623 | assignment.
|
4624 | 4624 |
|
4625 | 4625 | \pnum
|
4626 | 4626 | \effects
|
4627 |
| -If \tcode{*this} holds a $T_j$, assigns \tcode{std::forward<T>(t)} to |
| 4627 | +If \tcode{*this} holds a \tcode{T}$_j$, assigns \tcode{std::forward<T>(t)} to |
4628 | 4628 | the value contained in \tcode{*this}. Otherwise, destroys any value contained
|
4629 |
| -in \tcode{*this}, sets \tcode{*this} to hold the alternative type $T_j$ |
| 4629 | +in \tcode{*this}, sets \tcode{*this} to hold the alternative type \tcode{T}$_j$ |
4630 | 4630 | as selected by the imaginary function overload resolution described above,
|
4631 | 4631 | and direct-initializes the contained value as if direct-non-list-initializing
|
4632 | 4632 | it with \tcode{std::forward<T>(t)}.
|
4633 | 4633 |
|
4634 | 4634 | \pnum
|
4635 | 4635 | \postconditions
|
4636 |
| -\tcode{holds_alternative<$T_j$>(*this)} is \tcode{true}, with $T_j$ |
| 4636 | +\tcode{holds_alternative<T$_j$>(*this)} is \tcode{true}, with \tcode{T}$_j$ |
4637 | 4637 | selected by the imaginary function overload resolution described above.
|
4638 | 4638 |
|
4639 | 4639 | \pnum
|
|
4643 | 4643 | \remarks
|
4644 | 4644 | This function shall not participate in overload resolution unless
|
4645 | 4645 | \tcode{is_same_v<decay_t<T>, variant>} is \tcode{false}, unless
|
4646 |
| -\tcode{is_assignable_v<$T_j$\&, T> \&\& is_constructible_v<$T_j$, T>} is \tcode{true}, |
| 4646 | +\tcode{is_assignable_v<T$_j$\&, T> \&\& is_constructible_v<T$_j$, T>} is \tcode{true}, |
4647 | 4647 | and unless the expression \tcode{\textit{FUN}(std::forward<T>(t))} (with
|
4648 | 4648 | \tcode{\textit{FUN}} being the above-mentioned set of imaginary functions)
|
4649 | 4649 | is well formed.
|
|
4659 | 4659 |
|
4660 | 4660 | \pnum
|
4661 | 4661 | The expression inside \tcode{noexcept} is equivalent to:
|
4662 |
| -\tcode{is_nothrow_assignable_v<$T_j$\&, T> \&\& is_nothrow_constructible_v<$T_j$, T>}. |
| 4662 | +\tcode{is_nothrow_assignable_v<T$_j$\&, T> \&\& is_nothrow_constructible_v<T$_j$, T>}. |
4663 | 4663 | \begin{itemize}
|
4664 | 4664 | \item If an exception is thrown during the assignment of \tcode{std::forward<T>(t)}
|
4665 | 4665 | to the value contained in \tcode{*this}, the state of the contained value and
|
|
4722 | 4722 | \effects
|
4723 | 4723 | Destroys the currently contained value if \tcode{valueless_by_exception()}
|
4724 | 4724 | is \tcode{false}. Then direct-initializes the contained value as if
|
4725 |
| -constructing a value of type $T_I$ with the arguments |
| 4725 | +constructing a value of type \tcode{T}$_I$ with the arguments |
4726 | 4726 | \tcode{std::forward<Ar\-gs>(args)...}.
|
4727 | 4727 |
|
4728 | 4728 | \pnum
|
|
4736 | 4736 | \pnum
|
4737 | 4737 | \remarks
|
4738 | 4738 | This function shall not participate in overload resolution unless
|
4739 |
| -\tcode{is_constructible_v<$T_I$, Args...>} is \tcode{true}. |
| 4739 | +\tcode{is_constructible_v<T$_I$, Args...>} is \tcode{true}. |
4740 | 4740 | If an exception is thrown during the initialization of the contained value,
|
4741 | 4741 | the \tcode{variant} might not hold a value.
|
4742 | 4742 | \end{itemdescr}
|
|
4755 | 4755 | \effects
|
4756 | 4756 | Destroys the currently contained value if \tcode{valueless_by_exception()}
|
4757 | 4757 | is \tcode{false}. Then direct-initializes the contained value as if
|
4758 |
| -constructing a value of type $T_I$ with the arguments |
| 4758 | +constructing a value of type \tcode{T}$_I$ with the arguments |
4759 | 4759 | \tcode{il, std::forward<Args>(args)...}.
|
4760 | 4760 |
|
4761 | 4761 | \pnum
|
|
4769 | 4769 | \pnum
|
4770 | 4770 | \remarks
|
4771 | 4771 | This function shall not participate in overload resolution unless
|
4772 |
| -\tcode{is_constructible_v<$T_I$, initializer_list<U>\&, Args...>} is \tcode{true}. |
| 4772 | +\tcode{is_constructible_v<T$_I$, initializer_list<U>\&, Args...>} is \tcode{true}. |
4773 | 4773 | If an exception is thrown during the initialization of the contained value,
|
4774 | 4774 | the \tcode{variant} might not hold a value.
|
4775 | 4775 | \end{itemdescr}
|
|
4821 | 4821 |
|
4822 | 4822 | \begin{itemdescr}
|
4823 | 4823 | \pnum
|
4824 |
| -\requires Lvalues of type \tcode{$T_i$} shall be swappable~(\ref{swappable.requirements}) and |
4825 |
| -\tcode{is_move_constructible_v<$T_i$>} shall be \tcode{true} for all $i$. |
| 4824 | +\requires Lvalues of type \tcode{T}$_i$ shall be swappable~(\ref{swappable.requirements}) and |
| 4825 | +\tcode{is_move_constructible_v<T$_i$>} shall be \tcode{true} for all $i$. |
4826 | 4826 |
|
4827 | 4827 | \pnum
|
4828 | 4828 | \effects
|
|
4841 | 4841 | any exception thrown by \tcode{swap(get<$i$>(*this), get<$i$>(rhs))}
|
4842 | 4842 | with $i$ being \tcode{index()}.
|
4843 | 4843 | Otherwise, any exception thrown by the move constructor
|
4844 |
| -of \tcode{$T_i$} or \tcode{$T_j$} |
| 4844 | +of \tcode{T}$_i$ or \tcode{T}$_j$ |
4845 | 4845 | with $i$ being \tcode{index()} and $j$ being \tcode{rhs.index()}.
|
4846 | 4846 |
|
4847 | 4847 | \pnum
|
4848 | 4848 | \remarks
|
4849 | 4849 | If an exception is thrown during the call to function \tcode{swap(get<$i$>(*this), get<$i$>(rhs))},
|
4850 | 4850 | the states of the contained values of \tcode{*this} and of \tcode{rhs} are
|
4851 | 4851 | determined by the exception safety guarantee of \tcode{swap} for lvalues of
|
4852 |
| -$T_i$ with $i$ being \tcode{index()}. |
| 4852 | +\tcode{T}$_i$ with $i$ being \tcode{index()}. |
4853 | 4853 | If an exception is thrown during the exchange of the values of \tcode{*this}
|
4854 | 4854 | and \tcode{rhs}, the states of the values of \tcode{*this} and of \tcode{rhs}
|
4855 | 4855 | are determined by the exception safety guarantee of \tcode{variant}'s move constructor.
|
4856 | 4856 | The expression inside \tcode{noexcept} is equivalent to the logical AND of
|
4857 |
| -\tcode{is_nothrow_move_constructible_v<$T_i$> \&\& is_nothrow_swappable_v<$T_i$>} for all $i$. |
| 4857 | +\tcode{is_nothrow_move_constructible_v<T$_i$> \&\& is_nothrow_swappable_v<T$_i$>} for all $i$. |
4858 | 4858 | \end{itemdescr}
|
4859 | 4859 |
|
4860 | 4860 | \rSec2[variant.helper]{\tcode{variant} helper classes}
|
|
4924 | 4924 | \requires \tcode{I < sizeof...(Types)}.
|
4925 | 4925 |
|
4926 | 4926 | \pnum
|
4927 |
| -\textit{Value:} The type $T_I$. |
| 4927 | +\textit{Value:} The type \tcode{T}$_I$. |
4928 | 4928 | \end{itemdescr}
|
4929 | 4929 |
|
4930 | 4930 | \rSec2[variant.get]{Value access}
|
|
5244 | 5244 |
|
5245 | 5245 | \pnum
|
5246 | 5246 | \remarks This function shall not participate in overload resolution
|
5247 |
| -unless \tcode{is_move_constructible_v<$T_i$> \&\& is_swappable_v<$T_i$>} |
| 5247 | +unless \tcode{is_move_constructible_v<T$_i$> \&\& is_swappable_v<T$_i$>} |
5248 | 5248 | is \tcode{true} for all $i$.
|
5249 | 5249 | The expression inside \tcode{noexcept} is equivalent to \tcode{noexcept(v.swap(w))}.
|
5250 | 5250 | \end{itemdescr}
|
|
0 commit comments