std::ranges:: get (std::ranges::subrange)
|
Definiert im Header
<ranges>
|
||
|
template
<
std::
size_t
N,
class
I,
class
S,
ranges::
subrange_kind
K
>
requires
(
(
N
==
0
&&
std::
copyable
<
I
>
)
||
N
==
1
)
|
(1) | (seit C++20) |
|
template
<
std::
size_t
N,
class
I,
class
S,
ranges::
subrange_kind
K
>
requires
(
N
<
2
)
|
(2) | (seit C++20) |
|
namespace
std
{
using
ranges
::
get
;
}
|
(3) | (seit C++20) |
Bietet Unterstützung für structured binding .
subrange
Lvalue (oder einem const Rvalue), wenn
N
==
0
oder
N
==
1
, entsprechend.
subrange
-Rvalue akzeptiert.
std
importiert, was ihre Verwendung vereinfacht und jeden
subrange
mit einem kopierbaren Iterator zu einem
pair-like
Typ macht.
Inhaltsverzeichnis |
Parameter
| r | - |
a
subrange
|
Rückgabewert
Beispiel
#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 }
Ausgabe:
-2 -4
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3589 | C++20 |
Überladung
(
1
)
kopiert
begin_
falls
N
gleich
0
ist, aber
I
könnte nicht
copyable
modellieren
|
Constraints hinzugefügt |
Siehe auch
| Structured binding (C++17) | bindet die angegebenen Namen an Teilobjekte oder Tupel-Elemente des Initialisierers |
|
(C++11)
|
greift auf das angegebene Tupel-Element zu
(Funktions-Template) |
|
(C++11)
|
greift auf ein Element eines
pair
zu
(Funktions-Template) |
|
(C++11)
|
greift auf ein Element eines
array
zu
(Funktions-Template) |
|
(C++17)
|
liest den Wert der Variante mit gegebenem Index oder Typ (falls der Typ eindeutig ist), wirft Fehler bei Fehler
(Funktions-Template) |
|
(C++26)
|
erhält eine Referenz auf Real- oder Imaginärteil eines
std::complex
(Funktions-Template) |