iter_swap(ranges::concat_view::iterator)
friend constexpr void iter_swap( const /*iterator*/& x, const /*iterator*/& y )
noexcept( /* see description */ ) requires ( /* see description */ );
|
(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 の場合、動作は未定義です。
この関数は通常の非修飾または修飾名検索では見えず、引数依存の名前検索のときconcat_view::iterator <Const>が引数の関連クラスである場合にのみ発見されます。
パラメータ
| x, y | - | イテレータ |
例外
its
を左辺値のパックとし、各値は
const
ranges::
iterator_t
<
maybe-const
<
Const, Views
>>
の対応する型とする。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++20)
|
二つの間接参照可能なオブジェクトが参照する値を交換する
(カスタマイゼーションポイントオブジェクト) |
|
二つのイテレータが指す要素を交換する
(関数テンプレート) |