iter_swap(ranges::concat_view::iterator)
friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )
noexcept( /* see description */ ) requires ( /* see description */ );
|
(since C++26) | |
Vertauscht die Objekte, auf die die zugrundeliegenden Iteratoren von x und y zeigen. Ä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 normale unqualifizierte oder qualifizierte Suche nicht sichtbar und kann nur durch argumentabhängige Suche gefunden werden, wenn concat_view::iterator <Const> eine assoziierte Klasse der Argumente ist.
Parameter
| x, y | - | Iteratoren |
Exceptions
Sei
its
ein Pack von Lvalues, wobei jeder Wert vom entsprechenden Typ in
const
ranges::
iterator_t
<
maybe-const
<
Const, Views
>>
ist.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
(C++20)
|
vertauscht die Werte, auf die zwei dereferenzierbare Objekte verweisen
(Anpassungspunktobjekt) |
|
vertauscht die Elemente, auf die zwei Iteratoren zeigen
(Funktionstemplate) |