55 lines
1.4 KiB
Markdown
55 lines
1.4 KiB
Markdown
[array.tuple]
|
|
|
|
# 23 Containers library [[containers]](./#containers)
|
|
|
|
## 23.3 Sequence containers [[sequences]](sequences#array.tuple)
|
|
|
|
### 23.3.3 Class template array [[array]](array#tuple)
|
|
|
|
#### 23.3.3.7 Tuple interface [array.tuple]
|
|
|
|
[ð](#lib:array)
|
|
|
|
`template<class T, size_t N>
|
|
struct tuple_size<array<T, N>> : integral_constant<size_t, N> { };
|
|
`
|
|
|
|
[ð](#lib:tuple_element)
|
|
|
|
`template<size_t I, class T, size_t N>
|
|
struct tuple_element<I, array<T, N>> {
|
|
using type = T;
|
|
};
|
|
`
|
|
|
|
[1](#1)
|
|
|
|
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L6398)
|
|
|
|
*Mandates*: I < N is true[.](#1.sentence-1)
|
|
|
|
[ð](#lib:array,get)
|
|
|
|
`template<size_t I, class T, size_t N>
|
|
constexpr T& get(array<T, N>& a) noexcept;
|
|
template<size_t I, class T, size_t N>
|
|
constexpr T&& get(array<T, N>&& a) noexcept;
|
|
template<size_t I, class T, size_t N>
|
|
constexpr const T& get(const array<T, N>& a) noexcept;
|
|
template<size_t I, class T, size_t N>
|
|
constexpr const T&& get(const array<T, N>&& a) noexcept;
|
|
`
|
|
|
|
[2](#2)
|
|
|
|
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L6416)
|
|
|
|
*Mandates*: I < N is true[.](#2.sentence-1)
|
|
|
|
[3](#3)
|
|
|
|
[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/containers.tex#L6420)
|
|
|
|
*Returns*: A reference to the Ith element of a,
|
|
where indexing is zero-based[.](#3.sentence-1)
|