iter_swap (ranges::concat_view:: iterator )
|
||||||||||||||||||||||
| Range primitives | |||||||
|
|||||||
| Range concepts | |||||||||||||||||||
|
|||||||||||||||||||
| Range factories | |||||||||
|
|||||||||
| Range adaptors | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||
| Helper items | |||||||||||||||||
|
|
||||||||||||||||
| Member functions | ||||
| Deduction guides | ||||
| Iterator | ||||
| Member functions | ||||
| Non-member functions | ||||
|
iter_swap
(concat_view::
iterator
)
|
|
friend
constexpr
void
iter_swap
(
const
/*iterator*/
&
x,
const
/*iterator*/
&
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句内の式は以下と等価です:
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 lookup
または
qualified lookup
では可視化されず、
argument-dependent lookup
によってのみ発見可能であり、その場合も
concat_view
::
iterator
<
Const
>
が引数の関連クラスである場合に限られます。
目次 |
パラメータ
| x, y | - | イテレータ |
例外
its
を左辺値のパックとし、各値は
const
ranges::
iterator_t
<
maybe-const
<
Const, Views
>>
の対応する型とする。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++20)
|
二つの間接参照可能なオブジェクトが参照する値を交換する
(カスタマイゼーションポイントオブジェクト) |
|
二つのイテレータが指す要素を交換する
(関数テンプレート) |