Iros
 
Loading...
Searching...
No Matches
di::container::MoveIterator< Iter > Class Template Reference

#include <di/container/iterator/move_iterator.h>

Inheritance diagram for di::container::MoveIterator< Iter >:
[legend]

Public Member Functions

constexpr MoveIterator ()=default
 
constexpr MoveIterator (Iter iterator)
 
template<typename Other>
requires (!concepts::SameAs<Iter, Other> && concepts::ConvertibleTo<Other const&, Iter>)
constexpr MoveIterator (MoveIterator< Other > const &other)
 
template<typename Other>
requires (!concepts::SameAs<Iter, Other> && concepts::ConvertibleTo<Other const&, Iter> && concepts::AssignableFrom<Iter&, Other const&>)
constexpr auto operator= (MoveIterator< Other > const &other) -> MoveIterator &
 
constexpr auto base () const &-> Iter const &
 
constexpr auto base () &&-> Iter
 
constexpr auto operator* () const -> meta::IteratorRValue< Iter >
 
constexpr void advance_one ()
 
constexpr void back_one ()
 
constexpr void advance_n (SSizeType n)
 
- Public Member Functions inherited from di::container::IteratorBase< MoveIterator< Iter >, meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, meta::IteratorValue< Iter >, meta::IteratorSSizeType< Iter > >
 IteratorBase ()=default
 
 IteratorBase (IteratorBase const &)=default
 
 IteratorBase (IteratorBase &&)=default
 
 IteratorBase (IteratorBase const &)=delete
 
auto operator= (IteratorBase const &) -> IteratorBase &=default
 
auto operator= (IteratorBase &&) -> IteratorBase &=default
 
auto operator= (IteratorBase const &) -> IteratorBase &requires(concepts::SameAs< meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, InputIteratorTag >)=delete
 
constexpr auto operator++ () -> MoveIterator< Iter > &
 
constexpr void operator++ (int)
 
constexpr auto operator++ (int) -> MoveIterator< Iter > requires(concepts::DerivedFrom< meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, ForwardIteratorTag >)
 
constexpr auto operator-- () -> MoveIterator< Iter > &requires(concepts::DerivedFrom< meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, BidirectionalIteratorTag >)
 
constexpr auto operator-- (int) -> MoveIterator< Iter > requires(concepts::DerivedFrom< meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, BidirectionalIteratorTag >)
 
constexpr auto operator[] (meta::IteratorSSizeType< Iter > n) const -> decltype(auto) requires(concepts::DerivedFrom< meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, RandomAccessIteratorTag >)
 
constexpr auto operator+= (meta::IteratorSSizeType< Iter > n) -> MoveIterator< Iter > &requires(concepts::DerivedFrom< meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, RandomAccessIteratorTag >)
 
constexpr auto operator-= (meta::IteratorSSizeType< Iter > n) -> MoveIterator< Iter > &requires(concepts::DerivedFrom< meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, RandomAccessIteratorTag >)
 

Friends

template<concepts::InputIterator Other>
class MoveIterator
 
constexpr friend auto tag_invoke (types::Tag< iterator_move >, MoveIterator const &self) -> decltype(auto) requires(
 
template<concepts::IndirectlySwappable< Iter > Other>
constexpr friend void tag_invoke (types::Tag< iterator_swap >, MoveIterator const &a, MoveIterator< Other > const &b)
 

Constructor & Destructor Documentation

◆ MoveIterator() [1/3]

template<concepts::InputIterator Iter>
di::container::MoveIterator< Iter >::MoveIterator ( )
constexprdefault

◆ MoveIterator() [2/3]

template<concepts::InputIterator Iter>
di::container::MoveIterator< Iter >::MoveIterator ( Iter iterator)
inlineexplicitconstexpr

◆ MoveIterator() [3/3]

template<concepts::InputIterator Iter>
template<typename Other>
requires (!concepts::SameAs<Iter, Other> && concepts::ConvertibleTo<Other const&, Iter>)
di::container::MoveIterator< Iter >::MoveIterator ( MoveIterator< Other > const & other)
inlineconstexpr

Member Function Documentation

◆ advance_n()

template<concepts::InputIterator Iter>
void di::container::MoveIterator< Iter >::advance_n ( SSizeType n)
inlineconstexpr

◆ advance_one()

template<concepts::InputIterator Iter>
void di::container::MoveIterator< Iter >::advance_one ( )
inlineconstexpr

◆ back_one()

template<concepts::InputIterator Iter>
void di::container::MoveIterator< Iter >::back_one ( )
inlineconstexpr

◆ base() [1/2]

template<concepts::InputIterator Iter>
auto di::container::MoveIterator< Iter >::base ( ) && -> Iter
inlineconstexpr

◆ base() [2/2]

template<concepts::InputIterator Iter>
auto di::container::MoveIterator< Iter >::base ( ) const & -> Iter const&
inlineconstexpr

◆ operator*()

template<concepts::InputIterator Iter>
auto di::container::MoveIterator< Iter >::operator* ( ) const -> meta::IteratorRValue<Iter>
inlineconstexpr

◆ operator=()

template<concepts::InputIterator Iter>
template<typename Other>
requires (!concepts::SameAs<Iter, Other> && concepts::ConvertibleTo<Other const&, Iter> && concepts::AssignableFrom<Iter&, Other const&>)
auto di::container::MoveIterator< Iter >::operator= ( MoveIterator< Other > const & other) -> MoveIterator&
inlineconstexpr

Friends And Related Symbol Documentation

◆ MoveIterator

template<concepts::InputIterator Iter>
template<concepts::InputIterator Other>
friend class MoveIterator
friend

◆ tag_invoke [1/2]

template<concepts::InputIterator Iter>
friend auto tag_invoke ( types::Tag< iterator_move > ,
MoveIterator< Iter > const & self ) -> decltype(auto) requires(
friend

◆ tag_invoke [2/2]

template<concepts::InputIterator Iter>
template<concepts::IndirectlySwappable< Iter > Other>
friend void tag_invoke ( types::Tag< iterator_swap > ,
MoveIterator< Iter > const & a,
MoveIterator< Other > const & b )
friend

The documentation for this class was generated from the following file: