iter_swap(ranges::concat_view::Iterator)
| friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y ) noexcept( /* siehe Beschreibung */ ) requires ( /* siehe Beschreibung */ ); |
(seit C++26) | |
Vertauscht die Objekte, auf die von den zugrunde liegenden Iteratoren von x und y gezeigt wird. Äquivalent zu 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_
);
Der Ausdruck in der requires-Klausel ist äquivalent zu std::swappable_with<std::iter_reference_t</*Iterator*/>,
std::iter_reference_t</*Iterator*/>> &&
(... && std::indirectly_swappable<ranges::iterator_t<maybe-const <Const, Views>>>) .
Wenn x.it_ .valueless_by_exception() || y.it_ .valueless_by_exception() true ist, ist das Verhalten undefiniert.
Diese Funktion ist für gewöhnliche unqualifizierte oder qualifizierte Suche nicht sichtbar und kann nur durch argumentabhängige Suche gefunden werden, wenn concat_view::Iterator <Const> eine zugehörige Klasse der Argumente ist.
Inhalt |
[edit] Parameter
| x, y | - | iteratoren |
[edit] Ausnahmen
Sei its ein Pack von Lvalues, wobei jeder Wert vom entsprechenden Typ in const ranges::iterator_t<maybe-const <Const, Views>>.
[edit] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[edit] Siehe auch
| (C++20) |
tauscht die von zwei dereferenzierbaren Objekten referenzierten Werte (Customization-Punkt-Objekt) |
| Tauscht die Elemente, auf die zwei Iteratoren zeigen (Funktionstempelat) |