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