iter_move(ranges::transform_view::iterator)
From cppreference.com
< cpp | ranges | transform view | iterator
| friend constexpr decltype(auto) iter_move( const /*iterator*/& i ) noexcept(/* 以下を参照 */); |
(C++20以降) | |
lvalue参照である場合、 std::move(*i) を返します。そうでなければ *i を返します。
この関数は、通常の非修飾または修飾ルックアップからは見えず、transform_view::iterator<Const> が引数の関連クラスである場合にのみ引数依存名探索で見つけることができます。
[編集] パラメータ
| i | - | iterator |
[編集] 戻り値
std::move(*i) (*i がlvalue参照の場合)、それ以外の場合は *i
[編集] 例外
noexcept 指定:
ここで、 *i.parent_->fun_ は変換関数を示し、 i.current_ は基になるイテレータを示します。
noexcept(noexcept(std::invoke(*i.parent_->fun_, *i.current_)))