std::move_iterator - Man Page

std::move_iterator< _Iterator >

Synopsis

#include <iterator>

Inherits std::__detail::__move_iter_cat< _Iterator >.

Public Types

using difference_type = iter_difference_t< _Iterator >
using iterator_concept = input_iterator_tag
using iterator_type = _Iterator
using pointer = _Iterator
using reference = iter_rvalue_reference_t< _Iterator >
using value_type = iter_value_t< _Iterator >

Public Member Functions

template<typename _Iter >
requires __convertible<_Iter>constexpr move_iterator (const move_iterator< _Iter > &__i)"
constexpr move_iterator (iterator_type __i)
constexpr iterator_type base () &&
constexpr const iterator_type & base () const &noexcept
constexpr reference operator* () const
constexpr move_iterator operator+ (difference_type __n) const
constexpr move_iterator & operator++ ()
constexpr move_iterator operator++ (int)
constexpr void operator++ (int)
constexpr move_iterator & operator+= (difference_type __n)
constexpr move_iterator operator- (difference_type __n) const
constexpr move_iterator & operator-- ()
constexpr move_iterator operator-- (int)
constexpr move_iterator & operator-= (difference_type __n)
constexpr pointer operator-> () const
template<typename _Iter >
requires __convertible<_Iter> && assignable_from<_Iterator&, const _Iter&>constexpr move_iterator & operator= (const move_iterator< _Iter > &__i)"
constexpr reference operator[] (difference_type __n) const

Friends

constexpr iter_rvalue_reference_t< _Iterator > iter_move (const move_iterator &__i) noexcept(noexcept(ranges::iter_move(__i._M_current)))
template<indirectly_swappable< _Iterator > _Iter2> constexpr void iter_swap (const move_iterator &__x, const move_iterator< _Iter2 > &__y) noexcept(noexcept(ranges::iter_swap(__x._M_current, __y._M_current)))
template<sized_sentinel_for< _Iterator > _Sent> constexpr iter_difference_t< _Iterator > operator- (const move_iterator &__x, const move_sentinel< _Sent > &__y)
template<sized_sentinel_for< _Iterator > _Sent> constexpr iter_difference_t< _Iterator > operator- (const move_sentinel< _Sent > &__x, const move_iterator &__y)
template<sentinel_for< _Iterator > _Sent> constexpr bool operator== (const move_iterator &__x, const move_sentinel< _Sent > &__y)

Detailed Description

template<typename _Iterator>

class std::move_iterator< _Iterator >"Class template move_iterator is an iterator adapter with the same behavior as the underlying iterator except that its dereference operator implicitly converts the value returned by the underlying iterator's dereference operator to an rvalue reference. Some generic algorithms can be called with move iterators to replace copying with moving.

Definition at line 1445 of file bits/iterator.

Member Typedef Documentation

template<typename _Iterator > using std::move_iterator< _Iterator >::difference_type =  iter_difference_t<_Iterator>

Definition at line 1475 of file bits/iterator.

template<typename _Iterator > using std::move_iterator< _Iterator >::iterator_concept =  input_iterator_tag

Definition at line 1472 of file bits/iterator.

template<typename _Iterator > using std::move_iterator< _Iterator >::iterator_type =  _Iterator

Definition at line 1469 of file bits/iterator.

template<typename _Iterator > using std::move_iterator< _Iterator >::pointer =  _Iterator

Definition at line 1476 of file bits/iterator.

template<typename _Iterator > using std::move_iterator< _Iterator >::reference =  iter_rvalue_reference_t<_Iterator>

Definition at line 1477 of file bits/iterator.

template<typename _Iterator > using std::move_iterator< _Iterator >::value_type =  iter_value_t<_Iterator>

Definition at line 1474 of file bits/iterator.

Constructor & Destructor Documentation

template<typename _Iterator > constexpr std::move_iterator< _Iterator >::move_iterator () [inline], [constexpr]

Definition at line 1493 of file bits/iterator.

template<typename _Iterator > constexpr std::move_iterator< _Iterator >::move_iterator (iterator_type __i) [inline], [explicit], [constexpr]

Definition at line 1497 of file bits/iterator.

template<typename _Iterator > template<typename _Iter >

requires __convertible<_Iter>constexpr std::move_iterator< _Iterator >::move_iterator (const move_iterator< _Iter > & __i) [inline], [constexpr]"

Definition at line 1505 of file bits/iterator.

Member Function Documentation

template<typename _Iterator > constexpr iterator_type std::move_iterator< _Iterator >::base () && [inline], [constexpr]

Definition at line 1533 of file bits/iterator.

template<typename _Iterator > constexpr const iterator_type & std::move_iterator< _Iterator >::base () const & [inline], [constexpr], [noexcept]

Definition at line 1528 of file bits/iterator.

template<typename _Iterator > constexpr reference std::move_iterator< _Iterator >::operator* () const [inline], [constexpr]

Definition at line 1539 of file bits/iterator.

template<typename _Iterator > constexpr move_iterator std::move_iterator< _Iterator >::operator+ (difference_type __n) const [inline], [constexpr]

Definition at line 1589 of file bits/iterator.

template<typename _Iterator > constexpr move_iterator & std::move_iterator< _Iterator >::operator++ () [inline], [constexpr]

Definition at line 1552 of file bits/iterator.

template<typename _Iterator > constexpr move_iterator std::move_iterator< _Iterator >::operator++ (int) [inline], [constexpr]

Definition at line 1559 of file bits/iterator.

template<typename _Iterator > constexpr void std::move_iterator< _Iterator >::operator++ (int) [inline], [constexpr]

Definition at line 1568 of file bits/iterator.

template<typename _Iterator > constexpr move_iterator & std::move_iterator< _Iterator >::operator+= (difference_type __n) [inline], [constexpr]

Definition at line 1593 of file bits/iterator.

template<typename _Iterator > constexpr move_iterator std::move_iterator< _Iterator >::operator- (difference_type __n) const [inline], [constexpr]

Definition at line 1601 of file bits/iterator.

template<typename _Iterator > constexpr move_iterator & std::move_iterator< _Iterator >::operator-- () [inline], [constexpr]

Definition at line 1573 of file bits/iterator.

template<typename _Iterator > constexpr move_iterator std::move_iterator< _Iterator >::operator-- (int) [inline], [constexpr]

Definition at line 1580 of file bits/iterator.

template<typename _Iterator > constexpr move_iterator & std::move_iterator< _Iterator >::operator-= (difference_type __n) [inline], [constexpr]

Definition at line 1605 of file bits/iterator.

template<typename _Iterator > constexpr pointer std::move_iterator< _Iterator >::operator-> () const [inline], [constexpr]

Definition at line 1548 of file bits/iterator.

template<typename _Iterator > template<typename _Iter >

requires __convertible<_Iter> && assignable_from<_Iterator&, const _Iter&>constexpr move_iterator & std::move_iterator< _Iterator >::operator= (const move_iterator< _Iter > & __i) [inline], [constexpr]"

Definition at line 1514 of file bits/iterator.

template<typename _Iterator > constexpr reference std::move_iterator< _Iterator >::operator[] (difference_type __n) const [inline], [constexpr]

Definition at line 1613 of file bits/iterator.

Author

Generated automatically by Doxygen for libstdc++ from the source code.

Info

Wed Sep 7 2022 libstdc++