di 0.1.0
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 >:
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 > >

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
auto operator= (IteratorBase const &) -> IteratorBase &=default
constexpr auto operator++ () -> Self &
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[] (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 &->Iterconst &
inlineconstexpr

◆ operator-

template<typename Self, concepts::Iterator Iter, typename Value>
friend auto operator- ( Self const & a,
Self const & b )->SSizeTyperequires(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 )->boolrequires(concepts::EqualityComparable< Iter >)
friend

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