std::ranges:: get (std::ranges::subrange)
|
Défini dans l'en-tête
<ranges>
|
||
|
template
<
std::
size_t
N,
class
I,
class
S,
ranges::
subrange_kind
K
>
requires
(
(
N
==
0
&&
std::
copyable
<
I
>
)
||
N
==
1
)
|
(1) | (depuis C++20) |
|
template
<
std::
size_t
N,
class
I,
class
S,
ranges::
subrange_kind
K
>
requires
(
N
<
2
)
|
(2) | (depuis C++20) |
|
namespace
std
{
using
ranges
::
get
;
}
|
(3) | (depuis C++20) |
Fournit la prise en charge de la structured binding .
subrange
lorsque
N
==
0
ou
N
==
1
, respectivement.
subrange
non constante.
std
, ce qui simplifie leur utilisation et rend chaque
subrange
avec un itérateur copiable un type
pair-like
.
Table des matières |
Paramètres
| r | - |
a
subrange
|
Valeur de retour
Exemple
#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 }
Sortie :
-2 -4
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 3589 | C++20 |
la surcharge
(
1
)
copie
begin_
si
N
est
0
, mais
I
pourrait ne pas modéliser
copyable
|
contraintes ajoutées |
Voir aussi
| Structured binding (C++17) | lie les noms spécifiés aux sous-objets ou éléments de tuple de l'initialiseur |
|
(C++11)
|
accède à l'élément spécifié du tuple
(modèle de fonction) |
|
(C++11)
|
accède à un élément d'une
pair
(modèle de fonction) |
|
(C++11)
|
accède à un élément d'un
array
(modèle de fonction) |
|
(C++17)
|
lit la valeur du variant donné l'index ou le type (si le type est unique), lance une exception en cas d'erreur
(modèle de fonction) |
|
(C++26)
|
obtient une référence à la partie réelle ou imaginaire d'un
std::complex
(modèle de fonction) |