tmp/tmplxelrke4/{from.md → to.md}
RENAMED
|
@@ -1,19 +1,18 @@
|
|
| 1 |
-
####
|
| 2 |
|
| 3 |
-
The conditions for an aggregate
|
| 4 |
`array` relies on the implicitly-declared special member functions (
|
| 5 |
-
[[class.ctor]], [[class.dtor]], and [[class.copy]]) to
|
| 6 |
-
|
| 7 |
-
|
| 8 |
-
implicit move constructor and move
|
| 9 |
-
|
| 10 |
-
respectively.
|
| 11 |
|
| 12 |
``` cpp
|
| 13 |
template<class T, class... U>
|
| 14 |
array(T, U...) -> array<T, 1 + sizeof...(U)>;
|
| 15 |
```
|
| 16 |
|
| 17 |
-
*
|
| 18 |
-
is ill-formed.
|
| 19 |
|
|
|
|
| 1 |
+
#### Constructors, copy, and assignment <a id="array.cons">[[array.cons]]</a>
|
| 2 |
|
| 3 |
+
The conditions for an aggregate [[dcl.init.aggr]] shall be met. Class
|
| 4 |
`array` relies on the implicitly-declared special member functions (
|
| 5 |
+
[[class.default.ctor]], [[class.dtor]], and [[class.copy.ctor]]) to
|
| 6 |
+
conform to the container requirements table in
|
| 7 |
+
[[container.requirements]]. In addition to the requirements specified in
|
| 8 |
+
the container requirements table, the implicit move constructor and move
|
| 9 |
+
assignment operator for `array` require that `T` be
|
| 10 |
+
*Cpp17MoveConstructible* or *Cpp17MoveAssignable*, respectively.
|
| 11 |
|
| 12 |
``` cpp
|
| 13 |
template<class T, class... U>
|
| 14 |
array(T, U...) -> array<T, 1 + sizeof...(U)>;
|
| 15 |
```
|
| 16 |
|
| 17 |
+
*Mandates:* `(is_same_v<T, U> && ...)` is `true`.
|
|
|
|
| 18 |
|