iter_swap(ranges::concat_view::iterator)
friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )
noexcept( /* see description */ ) requires ( /* see description */ );
|
(depuis C++26) | |
Échange les objets pointés par les itérateurs sous-jacents de x et y. Équivaut à
std::visit
(
[&](const auto& it1, const auto& it2)
{
if constexpr (std::is_same_v<decltype(it1), decltype(it2)>)
ranges::iter_swap(it1, it2);
else
ranges::swap(*x, *y);
},
x.it_ ,
y.it_
);
L'expression dans la clause requires est équivalente à
std::swappable_with<std::iter_reference_t</*iterator*/>,
std::iter_reference_t</*iterator*/>> &&
(... && std::indirectly_swappable<ranges::iterator_t<maybe-const <Const, Views>>>)
.
Si x.it_ .valueless_by_exception() || y.it_ .valueless_by_exception() est true, le comportement est indéfini.
Cette fonction n'est pas visible lors d'une recherche non qualifiée ou qualifiée ordinaire, et ne peut être trouvée que par recherche dépendante des arguments lorsque concat_view::iterator <Const> est une classe associée aux arguments.
Paramètres
| x, y | - | itérateurs |
Exceptions
Soit
its
un pack de lvalues, où chaque valeur est du type correspondant dans
const
ranges::
iterator_t
<
maybe-const
<
Const, Views
>>
.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Voir aussi
|
(C++20)
|
échange les valeurs référencées par deux objets déréférençables
(objet de point de personnalisation) |
|
échange les éléments pointés par deux itérateurs
(modèle de fonction) |