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) |
交换两个可解引用的对象的引用值 (定制点对象) |
交换两个迭代器指向的元素 (函数模板) |