Iros
 
Loading...
Searching...
No Matches
di::container::IteratorExtension< Self, Iter, Value > Class Template Reference

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

Inheritance diagram for di::container::IteratorExtension< Self, Iter, Value >:
[legend]

Public Member Functions

 IteratorExtension ()=default
 
constexpr IteratorExtension (Iter base)
 
constexpr auto base () const &-> Iter const &
 
constexpr auto base () &&-> Iter
 
constexpr void advance_one ()
 
constexpr void back_one ()
 
constexpr void advance_n (SSizeType n)
 
- Public Member Functions inherited from di::container::IteratorBase< Self, meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, Value, 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++ () -> Self &
 
constexpr void operator++ (int)
 
constexpr auto operator++ (int) -> Self 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-- () -> Self &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) -> Self 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) -> Self &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) -> Self &requires(concepts::DerivedFrom< meta::Conditional< concepts::RandomAccessIterator< Iter >, RandomAccessIteratorTag, meta::Conditional< concepts::BidirectionalIterator< Iter >, BidirectionalIteratorTag, meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag > > >, RandomAccessIteratorTag >)
 

Friends

constexpr friend auto operator- (Self const &a, Self const &b) -> SSizeType requires(concepts::RandomAccessIterator< Iter >)
 
constexpr friend auto operator== (Self const &a, Self const &b) -> bool requires(concepts::EqualityComparable< Iter >)
 
constexpr friend auto operator<=> (Self const &a, Self const &b)
 

Constructor & Destructor Documentation

◆ IteratorExtension() [1/2]

template<typename Self, concepts::Iterator Iter, typename Value>
di::container::IteratorExtension< Self, Iter, Value >::IteratorExtension ( )
default

◆ IteratorExtension() [2/2]

template<typename Self, concepts::Iterator Iter, typename Value>
di::container::IteratorExtension< Self, Iter, Value >::IteratorExtension ( Iter base)
inlineexplicitconstexpr

Member Function Documentation

◆ advance_n()

template<typename Self, concepts::Iterator Iter, typename Value>
void di::container::IteratorExtension< Self, Iter, Value >::advance_n ( SSizeType n)
inlineconstexpr

◆ advance_one()

template<typename Self, concepts::Iterator Iter, typename Value>
void di::container::IteratorExtension< Self, Iter, Value >::advance_one ( )
inlineconstexpr

◆ back_one()

template<typename Self, concepts::Iterator Iter, typename Value>
void di::container::IteratorExtension< Self, Iter, Value >::back_one ( )
inlineconstexpr

◆ base() [1/2]

template<typename Self, concepts::Iterator Iter, typename Value>
auto di::container::IteratorExtension< Self, Iter, Value >::base ( ) && -> Iter
inlineconstexpr

◆ base() [2/2]

template<typename Self, concepts::Iterator Iter, typename Value>
auto di::container::IteratorExtension< Self, Iter, Value >::base ( ) const & -> Iter const&
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator-

template<typename Self, concepts::Iterator Iter, typename Value>
friend auto operator- ( Self const & a,
Self const & b ) -> SSizeType requires(concepts::RandomAccessIterator<Iter>)
friend

◆ operator<=>

template<typename Self, concepts::Iterator Iter, typename Value>
friend auto operator<=> ( Self const & a,
Self const & b )
friend

◆ operator==

template<typename Self, concepts::Iterator Iter, typename Value>
friend auto operator== ( Self const & a,
Self const & b ) -> bool requires(concepts::EqualityComparable<Iter>)
friend

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