get
namespace opentl {
template <opentl::size_t I, typename T, opentl::size_t N>
constexpr T& get(opentl::array<T, N>& arr) noexcept;
template <opentl::size_t I, typename T, opentl::size_t N>
constexpr T&& get(opentl::array<T, N>&& arr) noexcept;
template <opentl::size_t I, typename T, opentl::size_t N>
constexpr const T& get(const opentl::array<T, N>& arr) noexcept;
template <opentl::size_t I, typename T, opentl::size_t N>
constexpr const T&& get(const opentl::array<T, N>&& arr) noexcept;
}
Returns a reference to the element at the specified index of an array.
Declared in <array/get.hpp>.
Template Parameters
| Name | Description |
|---|---|
I |
The element index. |
T |
The element type. |
N |
The array size. |
Parameters
| Name | Description |
|---|---|
arr |
The array to read from. |
Return Value
A reference (l-value or r-value, const or non-const, matching the argument) to the element at index I.
Exceptions
None. The function is noexcept. If I >= N, a static_assert fires at compile time.
Overloads
| Overload | Return Type | Description |
|---|---|---|
get<I>(array<T, N>&) |
T& |
Non-const l-value array; returns a non-const l-value reference. |
get<I>(array<T, N>&&) |
T&& |
Non-const r-value array; returns a movable r-value reference. |
get<I>(const array<T, N>&) |
const T& |
Const l-value array; returns a const l-value reference. |
get<I>(const array<T, N>&&) |
const T&& |
Const r-value array; returns a const r-value reference. |
Example
#include <opentl/array.hpp>
#include <array/get.hpp>
int main() {
opentl::array<int, 3> arr{1, 2, 3};
int& a = opentl::get<0>(arr); // l-value
const int& b = opentl::get<1>(arr); // const l-value
int moved = opentl::get<2>(opentl::array<int, 3>{1, 2, 3}); // r-value
}