tmp/tmpir5svy30/{from.md → to.md}
RENAMED
|
@@ -0,0 +1,16 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
### Concept <a id="concept.moveconstructible">[[concept.moveconstructible]]</a>
|
| 2 |
+
|
| 3 |
+
``` cpp
|
| 4 |
+
template<class T>
|
| 5 |
+
concept move_constructible = constructible_from<T, T> && convertible_to<T, T>;
|
| 6 |
+
```
|
| 7 |
+
|
| 8 |
+
If `T` is an object type, then let `rv` be an rvalue of type `T` and
|
| 9 |
+
`u2` a distinct object of type `T` equal to `rv`. `T` models
|
| 10 |
+
`move_constructible` only if
|
| 11 |
+
|
| 12 |
+
- After the definition `T u = rv;`, `u` is equal to `u2`.
|
| 13 |
+
- `T(rv)` is equal to `u2`.
|
| 14 |
+
- If `T` is not `const`, `rv`’s resulting state is valid but
|
| 15 |
+
unspecified [[lib.types.movedfrom]]; otherwise, it is unchanged.
|
| 16 |
+
|