Files
2025-10-25 03:02:53 +03:00

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)