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

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

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

Public Member Functions

 ConstIteratorImpl ()=default
 
constexpr ConstIteratorImpl (Iter iter)
 
template<concepts::ConvertibleTo< Iter > Jt>
constexpr ConstIteratorImpl (ConstIteratorImpl< Jt > other)
 
template<concepts::ConvertibleTo< Iter > T>
constexpr ConstIteratorImpl (T &&other)
 
constexpr auto base () const &-> Iter const &
 
constexpr auto base () &&-> Iter
 
constexpr auto operator* () const -> meta::IteratorConstReference< Iter >
 
constexpr auto operator-> () const -> Value const *requires(concepts::ContiguousIterator< Iter >)
 
constexpr void advance_one ()
 
constexpr void back_one ()
 
constexpr void advance_n (SSizeType n)
 
- Public Member Functions inherited from di::container::IteratorBase< ConstIteratorImpl< Iter >, meta::IteratorCategory< Iter >, 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::IteratorCategory< Iter >, InputIteratorTag >)=delete
 
constexpr auto operator++ () -> ConstIteratorImpl< Iter > &
 
constexpr void operator++ (int)
 
constexpr auto operator++ (int) -> ConstIteratorImpl< Iter > requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, ForwardIteratorTag >)
 
constexpr auto operator-- () -> ConstIteratorImpl< Iter > &requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, BidirectionalIteratorTag >)
 
constexpr auto operator-- (int) -> ConstIteratorImpl< Iter > requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, BidirectionalIteratorTag >)
 
constexpr auto operator[] (meta::IteratorSSizeType< Iter > n) const -> decltype(auto) requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, RandomAccessIteratorTag >)
 
constexpr auto operator+= (meta::IteratorSSizeType< Iter > n) -> ConstIteratorImpl< Iter > &requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, RandomAccessIteratorTag >)
 
constexpr auto operator-= (meta::IteratorSSizeType< Iter > n) -> ConstIteratorImpl< Iter > &requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, RandomAccessIteratorTag >)
 

Friends

constexpr friend auto operator== (Self const &a, Self const &b) -> bool requires(concepts::SentinelFor< Iter, Iter >)
 
template<typename Sent>
requires (!concepts::SameAs<Self, Sent> && concepts::SentinelFor<Sent, Iter>)
constexpr friend auto operator== (Self const &a, Sent const &b) -> bool
 
constexpr friend auto operator<=> (Self const &a, Self const &b)
 
template<typename Other>
requires (!concepts::SameAs<Self, Other> && concepts::RandomAccessIterator<Iter> && concepts::TotallyOrderedWith<Iter, Other>)
constexpr friend auto operator<=> (Self const &a, Other const &b)
 
constexpr friend auto operator- (Self const &a, Self const &b) -> SSizeType requires(concepts::RandomAccessIterator< Iter >)
 
template<typename Sent>
requires (!concepts::SameAs<Sent, Self> && concepts::SizedSentinelFor<Sent, Iter>)
constexpr friend auto operator- (Sent const &a, Self const &b) -> SSizeType
 

Constructor & Destructor Documentation

◆ ConstIteratorImpl() [1/4]

template<typename Iter>
di::container::ConstIteratorImpl< Iter >::ConstIteratorImpl ( )
default

◆ ConstIteratorImpl() [2/4]

template<typename Iter>
di::container::ConstIteratorImpl< Iter >::ConstIteratorImpl ( Iter iter)
inlineconstexpr

◆ ConstIteratorImpl() [3/4]

template<typename Iter>
template<concepts::ConvertibleTo< Iter > Jt>
di::container::ConstIteratorImpl< Iter >::ConstIteratorImpl ( ConstIteratorImpl< Jt > other)
inlineconstexpr

◆ ConstIteratorImpl() [4/4]

template<typename Iter>
template<concepts::ConvertibleTo< Iter > T>
di::container::ConstIteratorImpl< Iter >::ConstIteratorImpl ( T && other)
inlineconstexpr

Member Function Documentation

◆ advance_n()

template<typename Iter>
void di::container::ConstIteratorImpl< Iter >::advance_n ( SSizeType n)
inlineconstexpr

◆ advance_one()

template<typename Iter>
void di::container::ConstIteratorImpl< Iter >::advance_one ( )
inlineconstexpr

◆ back_one()

template<typename Iter>
void di::container::ConstIteratorImpl< Iter >::back_one ( )
inlineconstexpr

◆ base() [1/2]

template<typename Iter>
auto di::container::ConstIteratorImpl< Iter >::base ( ) && -> Iter
inlineconstexpr

◆ base() [2/2]

template<typename Iter>
auto di::container::ConstIteratorImpl< Iter >::base ( ) const & -> Iter const&
inlineconstexpr

◆ operator*()

template<typename Iter>
auto di::container::ConstIteratorImpl< Iter >::operator* ( ) const -> meta::IteratorConstReference<Iter>
inlineconstexpr

◆ operator->()

template<typename Iter>
auto di::container::ConstIteratorImpl< Iter >::operator-> ( ) const -> Value const* requires(concepts::ContiguousIterator<Iter>)
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator- [1/2]

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

◆ operator- [2/2]

template<typename Iter>
template<typename Sent>
requires (!concepts::SameAs<Sent, Self> && concepts::SizedSentinelFor<Sent, Iter>)
friend auto operator- ( Sent const & a,
Self const & b ) -> SSizeType
friend

◆ operator<=> [1/2]

template<typename Iter>
template<typename Other>
requires (!concepts::SameAs<Self, Other> && concepts::RandomAccessIterator<Iter> && concepts::TotallyOrderedWith<Iter, Other>)
friend auto operator<=> ( Self const & a,
Other const & b )
friend

◆ operator<=> [2/2]

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

◆ operator== [1/2]

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

◆ operator== [2/2]

template<typename Iter>
template<typename Sent>
requires (!concepts::SameAs<Self, Sent> && concepts::SentinelFor<Sent, Iter>)
friend auto operator== ( Self const & a,
Sent const & b ) -> bool
friend

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