From Jason Turner

[array.tuple]

Diff to HTML by rtfpessoa

tmp/tmpadzmgyp3/{from.md → to.md} RENAMED
@@ -1,40 +1,41 @@
1
  #### Tuple interface to class template `array` <a id="array.tuple">[[array.tuple]]</a>
2
 
3
  ``` cpp
4
- tuple_size<array<T, N> >::value
 
 
5
  ```
6
 
7
- *Return type:* integral constant expression.
8
-
9
- *Value:* `N`
10
-
11
  ``` cpp
12
  tuple_element<I, array<T, N> >::type
13
  ```
14
 
15
  *Requires:* `I < N`. The program is ill-formed if `I` is out of bounds.
16
 
17
  *Value:* The type T.
18
 
19
  ``` cpp
20
- template <size_t I, class T, size_t N> T& get(array<T, N>& a) noexcept;
 
21
  ```
22
 
23
  *Requires:* `I < N`. The program is ill-formed if `I` is out of bounds.
24
 
25
  *Returns:* A reference to the `I`th element of `a`, where indexing is
26
  zero-based.
27
 
28
  ``` cpp
29
- template <size_t I, class T, size_t N> T&& get(array<T, N>&& a) noexcept;
 
30
  ```
31
 
32
  *Effects:* Equivalent to `return std::move(get<I>(a));`
33
 
34
  ``` cpp
35
- template <size_t I, class T, size_t N> const T& get(const array<T, N>& a) noexcept;
 
36
  ```
37
 
38
  *Requires:* `I < N`. The program is ill-formed if `I` is out of bounds.
39
 
40
  *Returns:* A const reference to the `I`th element of `a`, where indexing
 
1
  #### Tuple interface to class template `array` <a id="array.tuple">[[array.tuple]]</a>
2
 
3
  ``` cpp
4
+ template <class T, size_t N>
5
+ struct tuple_size<array<T, N>>
6
+ : integral_constant<size_t, N> { };
7
  ```
8
 
 
 
 
 
9
  ``` cpp
10
  tuple_element<I, array<T, N> >::type
11
  ```
12
 
13
  *Requires:* `I < N`. The program is ill-formed if `I` is out of bounds.
14
 
15
  *Value:* The type T.
16
 
17
  ``` cpp
18
+ template <size_t I, class T, size_t N>
19
+ constexpr T& get(array<T, N>& a) noexcept;
20
  ```
21
 
22
  *Requires:* `I < N`. The program is ill-formed if `I` is out of bounds.
23
 
24
  *Returns:* A reference to the `I`th element of `a`, where indexing is
25
  zero-based.
26
 
27
  ``` cpp
28
+ template <size_t I, class T, size_t N>
29
+ constexpr T&& get(array<T, N>&& a) noexcept;
30
  ```
31
 
32
  *Effects:* Equivalent to `return std::move(get<I>(a));`
33
 
34
  ``` cpp
35
+ template <size_t I, class T, size_t N>
36
+ constexpr const T& get(const array<T, N>& a) noexcept;
37
  ```
38
 
39
  *Requires:* `I < N`. The program is ill-formed if `I` is out of bounds.
40
 
41
  *Returns:* A const reference to the `I`th element of `a`, where indexing