iter_move(ranges::transform_view::iterator)

From cppreference.com
 
 
Ranges library
Range access
Range conversions
(哋它亢++23)(哋它亢++23)
(哋它亢++23)

Range primitives
(哋它亢++23)(哋它亢++23)    
(哋它亢++23)



Dangling iterator handling
Range concepts
Views

Range factories
(哋它亢++23)(哋它亢++23)
Range adaptors
(哋它亢++23)(哋它亢++23)
(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
(哋它亢++23)(哋它亢++23)
Range generators
(哋它亢++23)
Range adaptor objects
Range adaptor closure objects
(哋它亢++23)
Helper items
(until 哋它亢++23)(哋它亢++23)


 
 
friend constexpr decltype(auto) iter_move( const /*iterator*/& i )
    noexcept(/* see below */);
(since 哋它亢++20)

If *i is an lvalue reference, returns std::move(*i); otherwise returns *i.

This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when transform_view::iterator<Const> is an associated class of the arguments.

Parameters

i - iterator

Return value

std::move(*i) if *i is an lvalue reference, otherwise *i

Exceptions

noexcept specification:  
noexcept(noexcept(std::invoke(*i.parent_->fun_, *i.current_)))
where *i.parent_->fun_ denotes the transformation function, i.current_ denotes the underlying iterator.