libbmb
Modern implementation of STL
Loading...
Searching...
No Matches
bmb::detail::BaseVectorIter< T, IsConst > Class Template Reference

contiguous iterator for Vector. Trivial iterator-wrapper for pointer to array(aka T*) More...

#include <vector_iterator.h>

Public Types

using value_type = remove_const_t< T >
 
using reference = conditional_t< IsConst, const T, T > &
 
using pointer = conditional_t< IsConst, const T, T > *
 
using difference_type = ptrdiff_t
 
using iterator_category = contiguous_iter_tag
 

Public Member Functions

 BaseVectorIter ()
 
 BaseVectorIter (pointer ptr)
 
 operator BaseVectorIter< T, true > () const
 
pointer operator-> () const
 
reference operator* () const
 
Selfoperator++ ()
 
Self operator++ (int)
 
Selfoperator+= (difference_type n)
 
Self operator+ (difference_type n)
 
Selfoperator-- ()
 
Self operator-- (int)
 
Selfoperator-= (difference_type n)
 
Self operator- (difference_type n)
 
auto operator<=> (const Self &other) const =default
 

Friends

Self operator+ (difference_type n, const Self &it)
 
difference_type operator- (const Self &lhs, const Self &rhs)
 

Detailed Description

template<typename T, bool IsConst>
class bmb::detail::BaseVectorIter< T, IsConst >

contiguous iterator for Vector. Trivial iterator-wrapper for pointer to array(aka T*)

Member Typedef Documentation

◆ difference_type

template<typename T , bool IsConst>
using bmb::detail::BaseVectorIter< T, IsConst >::difference_type = ptrdiff_t

◆ iterator_category

template<typename T , bool IsConst>
using bmb::detail::BaseVectorIter< T, IsConst >::iterator_category = contiguous_iter_tag

◆ pointer

◆ reference

template<typename T , bool IsConst>
using bmb::detail::BaseVectorIter< T, IsConst >::reference = conditional_t<IsConst, const T, T>&

◆ value_type

template<typename T , bool IsConst>
using bmb::detail::BaseVectorIter< T, IsConst >::value_type = remove_const_t<T>

Constructor & Destructor Documentation

◆ BaseVectorIter() [1/2]

template<typename T , bool IsConst>
bmb::detail::BaseVectorIter< T, IsConst >::BaseVectorIter ( )
inline

◆ BaseVectorIter() [2/2]

template<typename T , bool IsConst>
bmb::detail::BaseVectorIter< T, IsConst >::BaseVectorIter ( pointer  ptr)
inlineexplicit

Member Function Documentation

◆ operator BaseVectorIter< T, true >()

template<typename T , bool IsConst>
bmb::detail::BaseVectorIter< T, IsConst >::operator BaseVectorIter< T, true > ( ) const
inline

◆ operator*()

template<typename T , bool IsConst>
reference bmb::detail::BaseVectorIter< T, IsConst >::operator* ( ) const
inline

◆ operator+()

◆ operator++() [1/2]

template<typename T , bool IsConst>
Self & bmb::detail::BaseVectorIter< T, IsConst >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename T , bool IsConst>
Self bmb::detail::BaseVectorIter< T, IsConst >::operator++ ( int  )
inline

◆ operator+=()

◆ operator-()

◆ operator--() [1/2]

template<typename T , bool IsConst>
Self & bmb::detail::BaseVectorIter< T, IsConst >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename T , bool IsConst>
Self bmb::detail::BaseVectorIter< T, IsConst >::operator-- ( int  )
inline

◆ operator-=()

◆ operator->()

template<typename T , bool IsConst>
pointer bmb::detail::BaseVectorIter< T, IsConst >::operator-> ( ) const
inline

◆ operator<=>()

template<typename T , bool IsConst>
auto bmb::detail::BaseVectorIter< T, IsConst >::operator<=> ( const Self other) const
default

Friends And Related Symbol Documentation

◆ operator+

template<typename T , bool IsConst>
Self operator+ ( difference_type  n,
const Self it 
)
friend

◆ operator-

template<typename T , bool IsConst>
difference_type operator- ( const Self lhs,
const Self rhs 
)
friend

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