iter_swap(ranges::concat_view::iterator)
來自 cppreference.com
< cpp | 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>> 中的對應型別。
noexcept 規範:
noexcept(noexcept(ranges::swap(*x, *y)) && ... && noexcept(ranges::iter_swap(its, its)))
[編輯] 示例
| 本節不完整 原因:無示例 |
[編輯] 參閱
| (C++20) |
交換兩個可解引用物件所引用的值 (定製點物件) |
| 交換兩個迭代器所指向的元素 (函式模板) |