iter_move(ranges::enumerate_view::iterator)

来自cppreference.com


 
 
范围库
范围适配器
 
 
friend constexpr auto iter_move( const /*iterator*/& i ) noexcept(/* 见下文 */)
(C++23 起)

current_ 表示底层迭代器,pos_ 表示底层索引并令 Base 表示底层序列的(可能 cv 限定的)类型。

等价于:

template<class D, class B>
using tuple = std::tuple<D, ranges::range_rvalue_reference_t<B>>;
 
return tuple<difference_type, Base>(i.pos_, ranges::iter_move(i.current_));

此函数对常规的无限定有限定查找不可见,而只能在 enumerate_view::iterator<Const> 为实参的关联类时由实参依赖查找找到。

参数

i - 迭代器

返回值

包含索引和对存储迭代器应用 ranges::iter_move 结果的元组。

异常

noexcept 说明:  
noexcept(

    noexcept(ranges::iter_move(i.current_)) and
        std::is_nothrow_move_constructible_v<
            ranges::range_rvalue_reference_t<Base>>

)

参阅

(C++20)
将解引用迭代器的结果转换为其关联的右值引用类型
(定制点对象)