std::ranges:: get (std::ranges::subrange)
|
Definido en el encabezado
<ranges>
|
||
|
template
<
std::
size_t
N,
class
I,
class
S,
ranges::
subrange_kind
K
>
requires
(
(
N
==
0
&&
std::
copyable
<
I
>
)
||
N
==
1
)
|
(1) | (desde C++20) |
|
template
<
std::
size_t
N,
class
I,
class
S,
ranges::
subrange_kind
K
>
requires
(
N
<
2
)
|
(2) | (desde C++20) |
|
namespace
std
{
using
ranges
::
get
;
}
|
(3) | (desde C++20) |
Proporciona structured binding support.
subrange
cuando
N
==
0
o
N
==
1
, respectivamente.
subrange
no constante.
std
, lo que simplifica su uso y convierte cada
subrange
con un iterador copiable en un tipo
pair-like
.
Contenidos |
Parámetros
| r | - |
a
subrange
|
Valor de retorno
Ejemplo
#include <array> #include <iostream> #include <iterator> #include <ranges> int main() { std::array a{1, -2, 3, -4}; std::ranges::subrange sub_a{std::next(a.begin()), std::prev(a.end())}; std::cout << *std::ranges::get<0>(sub_a) << ' ' // == *(begin(a) + 1) << *std::ranges::get<1>(sub_a) << '\n'; // == *(end(a) - 1) *std::get<0>(sub_a) = 42; // OK // *std::get<2>(sub_a) = 13; // Error: index can only be 0 or 1 }
Salida:
-2 -4
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares publicados anteriormente de C++.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3589 | C++20 |
la sobrecarga
(
1
)
copia
begin_
si
N
es
0
, pero
I
podría no modelar
copyable
|
se añadieron restricciones |
Véase también
| Structured binding (C++17) | vincula los nombres especificados a subobjetos o elementos de tupla del inicializador |
|
(C++11)
|
accede al elemento especificado de la tupla
(plantilla de función) |
|
(C++11)
|
accede a un elemento de un
pair
(plantilla de función) |
|
(C++11)
|
accede a un elemento de un
array
(plantilla de función) |
|
(C++17)
|
lee el valor de la variante dado el índice o el tipo (si el tipo es único), lanza excepción en caso de error
(plantilla de función) |
|
(C++26)
|
obtiene una referencia a la parte real o imaginaria de un
std::complex
(plantilla de función) |