tmp/tmpz86pc3v_/{from.md → to.md}
RENAMED
|
@@ -1,8 +1,9 @@
|
|
| 1 |
#### Assignment <a id="expected.object.assign">[[expected.object.assign]]</a>
|
| 2 |
|
| 3 |
-
This subclause makes use of the following exposition-only function
|
|
|
|
| 4 |
|
| 5 |
``` cpp
|
| 6 |
template<class T, class U, class... Args>
|
| 7 |
constexpr void reinit-expected(T& newval, U& oldval, Args&&... args) { // exposition only
|
| 8 |
if constexpr (is_nothrow_constructible_v<T, Args...>) {
|
|
@@ -95,11 +96,11 @@ Then, if no exception was thrown, equivalent to:
|
|
| 95 |
is_nothrow_move_assignable_v<T> && is_nothrow_move_constructible_v<T> &&
|
| 96 |
is_nothrow_move_assignable_v<E> && is_nothrow_move_constructible_v<E>
|
| 97 |
```
|
| 98 |
|
| 99 |
``` cpp
|
| 100 |
-
template<class U = T>
|
| 101 |
constexpr expected& operator=(U&& v);
|
| 102 |
```
|
| 103 |
|
| 104 |
*Constraints:*
|
| 105 |
|
|
|
|
| 1 |
#### Assignment <a id="expected.object.assign">[[expected.object.assign]]</a>
|
| 2 |
|
| 3 |
+
This subclause makes use of the following exposition-only function
|
| 4 |
+
template:
|
| 5 |
|
| 6 |
``` cpp
|
| 7 |
template<class T, class U, class... Args>
|
| 8 |
constexpr void reinit-expected(T& newval, U& oldval, Args&&... args) { // exposition only
|
| 9 |
if constexpr (is_nothrow_constructible_v<T, Args...>) {
|
|
|
|
| 96 |
is_nothrow_move_assignable_v<T> && is_nothrow_move_constructible_v<T> &&
|
| 97 |
is_nothrow_move_assignable_v<E> && is_nothrow_move_constructible_v<E>
|
| 98 |
```
|
| 99 |
|
| 100 |
``` cpp
|
| 101 |
+
template<class U = remove_cv_t<T>>
|
| 102 |
constexpr expected& operator=(U&& v);
|
| 103 |
```
|
| 104 |
|
| 105 |
*Constraints:*
|
| 106 |
|