# iter_move(ranges::transform_view::iterator)

< cpp‎ | ranges‎ | transform view‎ | iterator

friend constexpr decltype(auto) iter_move( const /*iterator*/& i ) noexcept(/* see below */); |  | (C++20 起)

若 `*i` 为左值引用则返回 std::move(*i) ，否则返回 *i 。

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

### 参数

i | - | 迭代器

### 返回值

若 `*i` 为左值引用则为 std::move(*i) ，否则为 *i 。

### 异常

`noexcept` 说明：
noexcept(noexcept(std::invoke(*i.parent_->fun_, *i.current_)))
，其中 *i.parent_->fun_ 代表变换函数， i.current_ 代表底层迭代器。