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) | |
Tauscht die Objekte aus, auf die durch die zugrundeliegenden Iteratoren von
x
und
y
gezeigt wird. Entspricht
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öhnliches
unqualified
oder
qualified lookup
nicht sichtbar und kann nur durch
argument-dependent lookup
gefunden werden, wenn
concat_view
::
iterator
<
Const
>
eine assoziierte Klasse der Argumente ist.
Inhaltsverzeichnis |
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) |