std:: get (std::array)
|
Definido en el encabezado
<array>
|
||
|
template
<
std::
size_t
I,
class
T,
std::
size_t
N
>
T & get ( std:: array < T,N > & a ) noexcept ; |
(1) |
(desde C++11)
(constexpr desde C++14) |
|
template
<
std::
size_t
I,
class
T,
std::
size_t
N
>
T && get ( std:: array < T,N > && a ) noexcept ; |
(2) |
(desde C++11)
(constexpr desde C++14) |
|
template
<
std::
size_t
I,
class
T,
std::
size_t
N
>
const T & get ( const std:: array < T,N > & a ) noexcept ; |
(3) |
(desde C++11)
(constexpr desde C++14) |
|
template
<
std::
size_t
I,
class
T,
std::
size_t
N
>
const T && get ( const std:: array < T,N > && a ) noexcept ; |
(4) |
(desde C++11)
(constexpr desde C++14) |
Extrae el
I
th
elemento del array utilizando la interfaz
tuple-like
.
I
debe ser un valor entero en el rango
[
0
,
N
)
. Esto se aplica en tiempo de compilación a diferencia de
at()
o
operator[]
.
Contenidos |
Parámetros
| a | - | array del cual extraer los contenidos |
Valor de retorno
Una referencia al
I
th
elemento de
a
.
Complejidad
Constante.
Ejemplo
#include <array> #include <iostream> constexpr std::array v{1, 2, 3}; static_assert(get<0>(v) == 1 && get<1>(v) == 2 && get<2>(v) == 3); int main() { std::array<int, 3> a; // establecer valores: get<0>(a) = 1, get<1>(a) = 2, get<2>(a) = 3; // obtener valores: std::cout << '(' << get<0>(a) << ',' << get<1>(a) << ',' << get<2>(a) << ")\n"; }
Salida:
(1,2,3)
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 2485 | C++11 | no hay sobrecargas para const array&& | se añaden las sobrecargas |
Véase también
| Structured binding (C++17) | enlaza los nombres especificados a subobjetos o elementos de tupla del inicializador |
|
accede al elemento especificado
(función miembro pública) |
|
|
accede al elemento especificado con verificación de límites
(función miembro pública) |
|
|
(C++11)
|
tupla accede al elemento especificado
(plantilla de función) |
|
(C++11)
|
accede a un elemento de un
pair
(plantilla de función) |
|
(C++17)
|
lee el valor del variant dado el índice o el tipo (si el tipo es único), lanza excepción en caso de error
(plantilla de función) |
|
(C++20)
|
obtiene un iterador o centinela de un
std::ranges::subrange
(plantilla de función) |
|
(C++26)
|
obtiene una referencia a la parte real o imaginaria de un
std::complex
(plantilla de función) |