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

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

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

Public Member Functions

 CountedIterator ()=default
 
 CountedIterator (CountedIterator const &)=default
 
 CountedIterator (CountedIterator &&)=default
 
auto operator= (CountedIterator const &) -> CountedIterator &=default
 
auto operator= (CountedIterator &&) -> CountedIterator &=default
 
 CountedIterator (CountedIterator const &)=delete
 
auto operator= (CountedIterator const &) -> CountedIterator &requires(!concepts::ForwardIterator< Iter >)=delete
 
constexpr CountedIterator (Iter iterator, SSizeType n)
 
template<typename It>
requires (concepts::ConvertibleTo<It const&, Iter>)
constexpr CountedIterator (CountedIterator< It > const &other)
 
constexpr auto base () const &-> Iter const &
 
constexpr auto base () &&-> Iter
 
constexpr auto count () const -> SSizeType
 
constexpr auto operator* () -> decltype(auto)
 
constexpr auto operator* () const -> decltype(auto) requires(concepts::Dereferenceable< Iter const >)
 
constexpr auto operator-> () const
 
constexpr void advance_one ()
 
constexpr void back_one ()
 
constexpr void advance_n (SSizeType n)
 
- Public Member Functions inherited from di::container::IteratorBase< CountedIterator< 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++ () -> CountedIterator< Iter > &
 
constexpr void operator++ (int)
 
constexpr auto operator++ (int) -> CountedIterator< Iter > requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, ForwardIteratorTag >)
 
constexpr auto operator-- () -> CountedIterator< Iter > &requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, BidirectionalIteratorTag >)
 
constexpr auto operator-- (int) -> CountedIterator< 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) -> CountedIterator< Iter > &requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, RandomAccessIteratorTag >)
 
constexpr auto operator-= (meta::IteratorSSizeType< Iter > n) -> CountedIterator< Iter > &requires(concepts::DerivedFrom< meta::IteratorCategory< Iter >, RandomAccessIteratorTag >)
 

Friends

constexpr friend auto operator== (CountedIterator const &a, CountedIterator const &b) -> bool
 
constexpr friend auto operator== (CountedIterator const &a, DefaultSentinel) -> bool
 
constexpr friend auto operator<=> (CountedIterator const &a, CountedIterator const &b) -> strong_ordering
 
constexpr friend auto operator- (CountedIterator const &a, CountedIterator const &b) -> SSizeType
 
constexpr friend auto operator- (CountedIterator const &a, DefaultSentinel) -> SSizeType
 
constexpr friend auto operator- (DefaultSentinel, CountedIterator const &b) -> SSizeType
 
constexpr friend auto tag_invoke (types::Tag< iterator_move >, CountedIterator const &self) -> decltype(auto) requires(concepts::InputIterator< Iter >)
 
template<concepts::IndirectlySwappable< Iter > It>
constexpr friend void tag_invoke (types::Tag< iterator_swap >, CountedIterator const &a, CountedIterator< It > const &b)
 

Constructor & Destructor Documentation

◆ CountedIterator() [1/6]

template<concepts::Iterator Iter>
di::container::CountedIterator< Iter >::CountedIterator ( )
default

◆ CountedIterator() [2/6]

template<concepts::Iterator Iter>
di::container::CountedIterator< Iter >::CountedIterator ( CountedIterator< Iter > const & )
default

◆ CountedIterator() [3/6]

template<concepts::Iterator Iter>
di::container::CountedIterator< Iter >::CountedIterator ( CountedIterator< Iter > && )
default

◆ CountedIterator() [4/6]

template<concepts::Iterator Iter>
di::container::CountedIterator< Iter >::CountedIterator ( CountedIterator< Iter > const & )
delete

◆ CountedIterator() [5/6]

template<concepts::Iterator Iter>
di::container::CountedIterator< Iter >::CountedIterator ( Iter iterator,
SSizeType n )
inlineconstexpr

◆ CountedIterator() [6/6]

template<concepts::Iterator Iter>
template<typename It>
requires (concepts::ConvertibleTo<It const&, Iter>)
di::container::CountedIterator< Iter >::CountedIterator ( CountedIterator< It > const & other)
inlineconstexpr

Member Function Documentation

◆ advance_n()

template<concepts::Iterator Iter>
void di::container::CountedIterator< Iter >::advance_n ( SSizeType n)
inlineconstexpr

◆ advance_one()

template<concepts::Iterator Iter>
void di::container::CountedIterator< Iter >::advance_one ( )
inlineconstexpr

◆ back_one()

template<concepts::Iterator Iter>
void di::container::CountedIterator< Iter >::back_one ( )
inlineconstexpr

◆ base() [1/2]

template<concepts::Iterator Iter>
auto di::container::CountedIterator< Iter >::base ( ) && -> Iter
inlineconstexpr

◆ base() [2/2]

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

◆ count()

template<concepts::Iterator Iter>
auto di::container::CountedIterator< Iter >::count ( ) const -> SSizeType
inlineconstexpr

◆ operator*() [1/2]

template<concepts::Iterator Iter>
auto di::container::CountedIterator< Iter >::operator* ( ) -> decltype(auto)
inlineconstexpr

◆ operator*() [2/2]

template<concepts::Iterator Iter>
auto di::container::CountedIterator< Iter >::operator* ( ) const -> decltype(auto) requires(concepts::Dereferenceable<Iter const>)
inlineconstexpr

◆ operator->()

template<concepts::Iterator Iter>
auto di::container::CountedIterator< Iter >::operator-> ( ) const
inlineconstexpr

◆ operator=() [1/3]

template<concepts::Iterator Iter>
auto di::container::CountedIterator< Iter >::operator= ( CountedIterator< Iter > && ) -> CountedIterator &=default
default

◆ operator=() [2/3]

template<concepts::Iterator Iter>
auto di::container::CountedIterator< Iter >::operator= ( CountedIterator< Iter > const & ) -> CountedIterator &=default
default

◆ operator=() [3/3]

template<concepts::Iterator Iter>
auto di::container::CountedIterator< Iter >::operator= ( CountedIterator< Iter > const & ) -> CountedIterator &requires(!concepts::ForwardIterator< Iter >)=delete
delete

Friends And Related Symbol Documentation

◆ operator- [1/3]

template<concepts::Iterator Iter>
friend auto operator- ( CountedIterator< Iter > const & a,
CountedIterator< Iter > const & b ) -> SSizeType
friend

◆ operator- [2/3]

template<concepts::Iterator Iter>
friend auto operator- ( CountedIterator< Iter > const & a,
DefaultSentinel  ) -> SSizeType
friend

◆ operator- [3/3]

template<concepts::Iterator Iter>
friend auto operator- ( DefaultSentinel ,
CountedIterator< Iter > const & b ) -> SSizeType
friend

◆ operator<=>

template<concepts::Iterator Iter>
friend auto operator<=> ( CountedIterator< Iter > const & a,
CountedIterator< Iter > const & b ) -> strong_ordering
friend

◆ operator== [1/2]

template<concepts::Iterator Iter>
friend auto operator== ( CountedIterator< Iter > const & a,
CountedIterator< Iter > const & b ) -> bool
friend

◆ operator== [2/2]

template<concepts::Iterator Iter>
friend auto operator== ( CountedIterator< Iter > const & a,
DefaultSentinel  ) -> bool
friend

◆ tag_invoke [1/2]

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

◆ tag_invoke [2/2]

template<concepts::Iterator Iter>
template<concepts::IndirectlySwappable< Iter > It>
friend void tag_invoke ( types::Tag< iterator_swap > ,
CountedIterator< Iter > const & a,
CountedIterator< It > const & b )
friend

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