Iros
 
Loading...
Searching...
No Matches
di::container::IteratorBase< Self, Category, ValueType, SSizeType > Struct Template Reference

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

Public Member Functions

 IteratorBase ()=default
 
 IteratorBase (IteratorBase const &)=default
 
 IteratorBase (IteratorBase &&)=default
 
auto operator= (IteratorBase const &) -> IteratorBase &=default
 
auto operator= (IteratorBase &&) -> IteratorBase &=default
 
 IteratorBase (IteratorBase const &)=delete
 
auto operator= (IteratorBase const &) -> IteratorBase &requires(concepts::SameAs< Category, InputIteratorTag >)=delete
 
constexpr auto operator++ () -> Self &
 
constexpr void operator++ (int)
 
constexpr auto operator++ (int) -> Self requires(concepts::DerivedFrom< Category, ForwardIteratorTag >)
 
constexpr auto operator-- () -> Self &requires(concepts::DerivedFrom< Category, BidirectionalIteratorTag >)
 
constexpr auto operator-- (int) -> Self requires(concepts::DerivedFrom< Category, BidirectionalIteratorTag >)
 
constexpr auto operator[] (SSizeType n) const -> decltype(auto) requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
 
constexpr auto operator+= (SSizeType n) -> Self &requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
 
constexpr auto operator-= (SSizeType n) -> Self &requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
 

Friends

constexpr friend auto operator+ (Self const &self, SSizeType n) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
 
constexpr friend auto operator+ (SSizeType n, Self const &self) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
 
constexpr friend auto operator- (Self const &self, SSizeType n) -> Self requires(concepts::DerivedFrom< Category, RandomAccessIteratorTag >)
 
auto tag_invoke (types::Tag< iterator_ssize_type >, InPlaceType< Self >) -> SSizeType
 
auto tag_invoke (types::Tag< iterator_value >, InPlaceType< Self >) -> InPlaceType< ValueType >
 
auto tag_invoke (types::Tag< iterator_category >, InPlaceType< Self >) -> Category
 

Constructor & Destructor Documentation

◆ IteratorBase() [1/4]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
di::container::IteratorBase< Self, Category, ValueType, SSizeType >::IteratorBase ( )
default

◆ IteratorBase() [2/4]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
di::container::IteratorBase< Self, Category, ValueType, SSizeType >::IteratorBase ( IteratorBase< Self, Category, ValueType, SSizeType > const & )
default

◆ IteratorBase() [3/4]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
di::container::IteratorBase< Self, Category, ValueType, SSizeType >::IteratorBase ( IteratorBase< Self, Category, ValueType, SSizeType > && )
default

◆ IteratorBase() [4/4]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
di::container::IteratorBase< Self, Category, ValueType, SSizeType >::IteratorBase ( IteratorBase< Self, Category, ValueType, SSizeType > const & )
delete

Member Function Documentation

◆ operator++() [1/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator++ ( ) -> Self&
inlineconstexpr

◆ operator++() [2/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
void di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator++ ( int )
inlineconstexpr

◆ operator++() [3/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator++ ( int ) -> Self requires(concepts::DerivedFrom<Category, ForwardIteratorTag>)
inlineconstexpr

◆ operator+=()

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator+= ( SSizeType n) -> Self& requires(concepts::DerivedFrom<Category, RandomAccessIteratorTag>)
inlineconstexpr

◆ operator--() [1/2]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator-- ( ) -> Self& requires(concepts::DerivedFrom<Category, BidirectionalIteratorTag>)
inlineconstexpr

◆ operator--() [2/2]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator-- ( int ) -> Self requires(concepts::DerivedFrom<Category, BidirectionalIteratorTag>)
inlineconstexpr

◆ operator-=()

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator-= ( SSizeType n) -> Self& requires(concepts::DerivedFrom<Category, RandomAccessIteratorTag>)
inlineconstexpr

◆ operator=() [1/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator= ( IteratorBase< Self, Category, ValueType, SSizeType > && ) -> IteratorBase &=default
default

◆ operator=() [2/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator= ( IteratorBase< Self, Category, ValueType, SSizeType > const & ) -> IteratorBase &=default
default

◆ operator=() [3/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator= ( IteratorBase< Self, Category, ValueType, SSizeType > const & ) -> IteratorBase &requires(concepts::SameAs< Category, InputIteratorTag >)=delete
delete

◆ operator[]()

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto di::container::IteratorBase< Self, Category, ValueType, SSizeType >::operator[] ( SSizeType n) const -> decltype(auto) requires(concepts::DerivedFrom<Category, RandomAccessIteratorTag>)
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator+ [1/2]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
friend auto operator+ ( Self const & self,
SSizeType n ) -> Self requires(concepts::DerivedFrom<Category, RandomAccessIteratorTag>)
friend

◆ operator+ [2/2]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
friend auto operator+ ( SSizeType n,
Self const & self ) -> Self requires(concepts::DerivedFrom<Category, RandomAccessIteratorTag>)
friend

◆ operator-

template<typename Self, typename Category, typename ValueType, typename SSizeType>
friend auto operator- ( Self const & self,
SSizeType n ) -> Self requires(concepts::DerivedFrom<Category, RandomAccessIteratorTag>)
friend

◆ tag_invoke [1/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto tag_invoke ( types::Tag< iterator_category > ,
InPlaceType< Self >  ) -> Category
friend

◆ tag_invoke [2/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto tag_invoke ( types::Tag< iterator_ssize_type > ,
InPlaceType< Self >  ) -> SSizeType
friend

◆ tag_invoke [3/3]

template<typename Self, typename Category, typename ValueType, typename SSizeType>
auto tag_invoke ( types::Tag< iterator_value > ,
InPlaceType< Self >  ) -> InPlaceType<ValueType>
friend

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