iter_swap (ranges::concat_view:: iterator )
|
friend
constexpr
void
iter_swap
(
const
/*итератор*/
&
x,
const
/*итератор*/
&
y
)
noexcept ( /* см. описание */ ) requires ( /* см. описание */ ) ; |
(начиная с C++26) | |
Обменивает объекты, на которые указывают базовые итераторы
x
и
y
. Эквивалентно
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_
)
;
Выражение в
requires
клаузе эквивалентно
std::
swappable_with
<
std::
iter_reference_t
<
/*iterator*/
>
,
std::
iter_reference_t
<
/*iterator*/
>>
&&
(
...
&&
std::
indirectly_swappable
<
ranges::
iterator_t
<
maybe-const
<
Const, Views
>>>
)
.
Если
x.
it_
.
valueless_by_exception
(
)
||
y.
it_
.
valueless_by_exception
(
)
равно
true
, поведение не определено.
Эта функция не видна при обычном
unqualified
или
qualified lookup
, и может быть найдена только с помощью
argument-dependent lookup
, когда
concat_view
::
iterator
<
Const
>
является ассоциированным классом аргументов.
Содержание |
Параметры
| x, y | - | итераторы |
Исключения
Пусть
its
будет набором lvalue, где каждое значение имеет соответствующий тип в
const
ranges::
iterator_t
<
maybe-const
<
Const, Views
>>
.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
(C++20)
|
обменивает значения, на которые ссылаются два разыменовываемых объекта
(объект точки настройки) |
|
обменивает элементы, на которые указывают два итератора
(шаблон функции) |