@@ -42,6 +42,13 @@ namespace boost {
42
42
constexpr T& get(array<T, N>&) noexcept;
43
43
template<std::size_t Idx, typename T, std::size_t N>
44
44
constexpr const T& get(const array<T, N>&) noexcept;
45
+
46
+ template<class T, std::size_t N>
47
+ constexpr array<T, N> to_array( T const (&)[N] );
48
+ template<class T, std::size_t N>
49
+ constexpr array<T, N> to_array( T (&&)[N] );
50
+ template<class T, std::size_t N>
51
+ constexpr array<T, N> to_array( T const (&&)[N] );
45
52
}
46
53
```
47
54
@@ -417,3 +424,29 @@ Mandates: :: `Idx < N`.
417
424
Returns: :: `arr[Idx]`.
418
425
419
426
---
427
+
428
+
429
+ ### Creation
430
+
431
+ ```
432
+ template<class T, std::size_t N>
433
+ constexpr array<T, N> to_array( T const (&a)[N] );
434
+ ```
435
+ [horizontal]
436
+ Returns: :: an `array<T, N>` `r` such that for each `i` in `[0..N)`, `r[i]` is copied from `a[i]`.
437
+
438
+ ```
439
+ template<class T, std::size_t N>
440
+ constexpr array<T, N> to_array( T (&&a)[N] );
441
+ ```
442
+ [horizontal]
443
+ Returns: :: an `array<T, N>` `r` such that for each `i` in `[0..N)`, `r[i]` is moved from `std::move(a[i])`.
444
+
445
+ ```
446
+ template<class T, std::size_t N>
447
+ constexpr array<T, N> to_array( T const (&&a)[N] );
448
+ ```
449
+ [horizontal]
450
+ Returns: :: an `array<T, N>` `r` such that for each `i` in `[0..N)`, `r[i]` is copied from `a[i]`.
451
+
452
+ ---
0 commit comments