Loading [MathJax]/extensions/tex2jax.js
Iros
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Loading...
Searching...
No Matches
di::container::CommonIterator< Iter, Sent > Class Template Reference

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

Inheritance diagram for di::container::CommonIterator< Iter, Sent >:
[legend]

Public Member Functions

 CommonIterator ()=default
 
constexpr CommonIterator (Iter it)
 
constexpr CommonIterator (Sent sent)
 
template<typename It, typename St>
requires (concepts::ConvertibleTo<It const&, Iter> && concepts::ConvertibleTo<St const&, Sent>)
constexpr CommonIterator (CommonIterator< It, St > const &other)
 
template<typename It, typename St>
requires (concepts::ConvertibleTo<It const&, Iter> && concepts::ConvertibleTo<St const&, Sent>)
constexpr auto operator= (CommonIterator< It, St > const &other) -> CommonIterator &
 
constexpr auto operator* () const -> decltype(auto)
 
constexpr auto operator-> () const
 
constexpr void advance_one ()
 
- Public Member Functions inherited from di::container::IteratorBase< CommonIterator< Iter, Sent >, 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::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag >, InputIteratorTag >)=delete
 
constexpr auto operator++ () -> CommonIterator< Iter, Sent > &
 
constexpr void operator++ (int)
 
constexpr auto operator++ (int) -> CommonIterator< Iter, Sent > requires(concepts::DerivedFrom< meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag >, ForwardIteratorTag >)
 
constexpr auto operator-- () -> CommonIterator< Iter, Sent > &requires(concepts::DerivedFrom< meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag >, BidirectionalIteratorTag >)
 
constexpr auto operator-- (int) -> CommonIterator< Iter, Sent > requires(concepts::DerivedFrom< meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag >, BidirectionalIteratorTag >)
 
constexpr auto operator[] (meta::IteratorSSizeType< Iter > n) const -> decltype(auto) requires(concepts::DerivedFrom< meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag >, RandomAccessIteratorTag >)
 
constexpr auto operator+= (meta::IteratorSSizeType< Iter > n) -> CommonIterator< Iter, Sent > &requires(concepts::DerivedFrom< meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag >, RandomAccessIteratorTag >)
 
constexpr auto operator-= (meta::IteratorSSizeType< Iter > n) -> CommonIterator< Iter, Sent > &requires(concepts::DerivedFrom< meta::Conditional< concepts::ForwardIterator< Iter >, ForwardIteratorTag, InputIteratorTag >, RandomAccessIteratorTag >)
 

Friends

template<concepts::InputIterator It, concepts::SentinelFor< It > St>
class CommonIterator
 
template<typename It, concepts::SentinelFor< It > St>
requires (concepts::SentinelFor<Sent, It>)
constexpr friend auto operator== (CommonIterator const &a, CommonIterator< It, St > const &b) -> bool
 
template<typename It, concepts::SentinelFor< It > St>
requires (concepts::SentinelFor<Sent, It> && concepts::EqualityComparableWith<Iter, It>)
constexpr friend auto operator== (CommonIterator const &a, CommonIterator< It, St > const &b) -> bool
 
template<concepts::SizedSentinelFor< Iter > It, concepts::SizedSentinelFor< Iter > St>
requires (concepts::SizedSentinelFor<Sent, Iter>)
constexpr friend auto operator- (CommonIterator const &a, CommonIterator< It, St > const &b) -> meta::IteratorSSizeType< It >
 
constexpr friend auto tag_invoke (types::Tag< iterator_move >, CommonIterator const &a) -> decltype(auto)
 
template<concepts::IndirectlySwappable< Iter > It, typename St>
constexpr friend void tag_invoke (types::Tag< iterator_swap >, CommonIterator const &a, CommonIterator< It, St > const &b)
 

Constructor & Destructor Documentation

◆ CommonIterator() [1/4]

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
di::container::CommonIterator< Iter, Sent >::CommonIterator ( )
default

◆ CommonIterator() [2/4]

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
di::container::CommonIterator< Iter, Sent >::CommonIterator ( Iter it)
inlineconstexpr

◆ CommonIterator() [3/4]

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
di::container::CommonIterator< Iter, Sent >::CommonIterator ( Sent sent)
inlineconstexpr

◆ CommonIterator() [4/4]

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
template<typename It, typename St>
requires (concepts::ConvertibleTo<It const&, Iter> && concepts::ConvertibleTo<St const&, Sent>)
di::container::CommonIterator< Iter, Sent >::CommonIterator ( CommonIterator< It, St > const & other)
inlineconstexpr

Member Function Documentation

◆ advance_one()

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
void di::container::CommonIterator< Iter, Sent >::advance_one ( )
inlineconstexpr

◆ operator*()

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
auto di::container::CommonIterator< Iter, Sent >::operator* ( ) const -> decltype(auto)
inlineconstexpr

◆ operator->()

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
auto di::container::CommonIterator< Iter, Sent >::operator-> ( ) const
inlineconstexpr

◆ operator=()

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
template<typename It, typename St>
requires (concepts::ConvertibleTo<It const&, Iter> && concepts::ConvertibleTo<St const&, Sent>)
auto di::container::CommonIterator< Iter, Sent >::operator= ( CommonIterator< It, St > const & other) -> CommonIterator&
inlineconstexpr

Friends And Related Symbol Documentation

◆ CommonIterator

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
template<concepts::InputIterator It, concepts::SentinelFor< It > St>
friend class CommonIterator
friend

◆ operator-

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
template<concepts::SizedSentinelFor< Iter > It, concepts::SizedSentinelFor< Iter > St>
requires (concepts::SizedSentinelFor<Sent, Iter>)
friend auto operator- ( CommonIterator< Iter, Sent > const & a,
CommonIterator< It, St > const & b ) -> meta::IteratorSSizeType<It>
friend

◆ operator== [1/2]

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
template<typename It, concepts::SentinelFor< It > St>
requires (concepts::SentinelFor<Sent, It>)
friend auto operator== ( CommonIterator< Iter, Sent > const & a,
CommonIterator< It, St > const & b ) -> bool
friend

◆ operator== [2/2]

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
template<typename It, concepts::SentinelFor< It > St>
requires (concepts::SentinelFor<Sent, It> && concepts::EqualityComparableWith<Iter, It>)
friend auto operator== ( CommonIterator< Iter, Sent > const & a,
CommonIterator< It, St > const & b ) -> bool
friend

◆ tag_invoke [1/2]

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
friend auto tag_invoke ( types::Tag< iterator_move > ,
CommonIterator< Iter, Sent > const & a ) -> decltype(auto)
friend

◆ tag_invoke [2/2]

template<concepts::InputIterator Iter, concepts::SentinelFor< Iter > Sent>
template<concepts::IndirectlySwappable< Iter > It, typename St>
friend void tag_invoke ( types::Tag< iterator_swap > ,
CommonIterator< Iter, Sent > const & a,
CommonIterator< It, St > const & b )
friend

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