mn::container::basic_ring_buffer_iterator< T, E > Class Template Reference

ring_buffer_iterator More...

#include <mn_ringbuffer.hpp>

Public Types

using value_type = T
 
using size_type = size_t
 
using difference_type = ptrdiff_t
 
using pointer = T *
 
using const_pointer = const T *
 
using reference = T &
 
using const_reference = const T &
 
using self_type = basic_ring_buffer_iterator< T >
 
using ringbuffer_iterator = typename T::iterator
 
using const_ringbuffer_iterator = typename T::const_iterator
 

Public Member Functions

 basic_ring_buffer_iterator (pointer b, size_t start_pos)
 
 basic_ring_buffer_iterator (const basic_ring_buffer_iterator &it)
 
basic_ring_buffer_iteratoroperator= (const basic_ring_buffer_iterator &it)
 
E & operator* ()
 
E * operator-> ()
 
self_typeoperator++ ()
 
self_typeoperator-- ()
 
self_type operator++ (int)
 
self_type operator-- (int)
 
self_type operator+ (difference_type n)
 
self_type operator- (difference_type n)
 
self_typeoperator+= (difference_type n)
 
self_typeoperator-= (difference_type n)
 
bool operator== (const self_type &other) const
 
bool operator!= (const self_type &other) const
 
value_typeoperator[] (difference_type n) const
 
bool operator< (const self_type &it) const
 
bool operator> (const self_type &it) const
 
bool operator<= (const self_type &it) const
 
bool operator>= (const self_type &it) const
 

Private Attributes

value_typem_buf
 
size_t m_pos
 

Detailed Description

template<typename T, typename E = typename T::value_type>
class mn::container::basic_ring_buffer_iterator< T, E >

ring_buffer_iterator

Template Parameters
TThe ringbuffer type
E

Member Typedef Documentation

◆ const_pointer

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::const_pointer = const T*

◆ const_reference

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::const_reference = const T&

◆ const_ringbuffer_iterator

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::const_ringbuffer_iterator = typename T::const_iterator

◆ difference_type

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::difference_type = ptrdiff_t

◆ pointer

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::pointer = T*

◆ reference

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::reference = T&

◆ ringbuffer_iterator

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::ringbuffer_iterator = typename T::iterator

◆ self_type

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::self_type = basic_ring_buffer_iterator<T>

◆ size_type

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::size_type = size_t

◆ value_type

template<typename T , typename E = typename T::value_type>
using mn::container::basic_ring_buffer_iterator< T, E >::value_type = T

Constructor & Destructor Documentation

◆ basic_ring_buffer_iterator() [1/2]

template<typename T , typename E = typename T::value_type>
mn::container::basic_ring_buffer_iterator< T, E >::basic_ring_buffer_iterator ( pointer  b,
size_t  start_pos 
)
inline

◆ basic_ring_buffer_iterator() [2/2]

template<typename T , typename E = typename T::value_type>
mn::container::basic_ring_buffer_iterator< T, E >::basic_ring_buffer_iterator ( const basic_ring_buffer_iterator< T, E > &  it)
inline

Member Function Documentation

◆ operator!=()

template<typename T , typename E = typename T::value_type>
bool mn::container::basic_ring_buffer_iterator< T, E >::operator!= ( const self_type other) const
inline

◆ operator*()

template<typename T , typename E = typename T::value_type>
E& mn::container::basic_ring_buffer_iterator< T, E >::operator* ( void  )
inline

◆ operator+()

template<typename T , typename E = typename T::value_type>
self_type mn::container::basic_ring_buffer_iterator< T, E >::operator+ ( difference_type  n)
inline

◆ operator++() [1/2]

template<typename T , typename E = typename T::value_type>
self_type& mn::container::basic_ring_buffer_iterator< T, E >::operator++ ( void  )
inline

◆ operator++() [2/2]

template<typename T , typename E = typename T::value_type>
self_type mn::container::basic_ring_buffer_iterator< T, E >::operator++ ( int  )
inline

◆ operator+=()

template<typename T , typename E = typename T::value_type>
self_type& mn::container::basic_ring_buffer_iterator< T, E >::operator+= ( difference_type  n)
inline

◆ operator-()

template<typename T , typename E = typename T::value_type>
self_type mn::container::basic_ring_buffer_iterator< T, E >::operator- ( difference_type  n)
inline

◆ operator--() [1/2]

template<typename T , typename E = typename T::value_type>
self_type& mn::container::basic_ring_buffer_iterator< T, E >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename T , typename E = typename T::value_type>
self_type mn::container::basic_ring_buffer_iterator< T, E >::operator-- ( int  )
inline

◆ operator-=()

template<typename T , typename E = typename T::value_type>
self_type& mn::container::basic_ring_buffer_iterator< T, E >::operator-= ( difference_type  n)
inline

◆ operator->()

template<typename T , typename E = typename T::value_type>
E* mn::container::basic_ring_buffer_iterator< T, E >::operator-> ( )
inline

◆ operator<()

template<typename T , typename E = typename T::value_type>
bool mn::container::basic_ring_buffer_iterator< T, E >::operator< ( const self_type it) const
inline

◆ operator<=()

template<typename T , typename E = typename T::value_type>
bool mn::container::basic_ring_buffer_iterator< T, E >::operator<= ( const self_type it) const
inline

◆ operator=()

template<typename T , typename E = typename T::value_type>
basic_ring_buffer_iterator& mn::container::basic_ring_buffer_iterator< T, E >::operator= ( const basic_ring_buffer_iterator< T, E > &  it)
inline

◆ operator==()

template<typename T , typename E = typename T::value_type>
bool mn::container::basic_ring_buffer_iterator< T, E >::operator== ( const self_type other) const
inline

◆ operator>()

template<typename T , typename E = typename T::value_type>
bool mn::container::basic_ring_buffer_iterator< T, E >::operator> ( const self_type it) const
inline

◆ operator>=()

template<typename T , typename E = typename T::value_type>
bool mn::container::basic_ring_buffer_iterator< T, E >::operator>= ( const self_type it) const
inline

◆ operator[]()

template<typename T , typename E = typename T::value_type>
value_type& mn::container::basic_ring_buffer_iterator< T, E >::operator[] ( difference_type  n) const
inline

Member Data Documentation

◆ m_buf

template<typename T , typename E = typename T::value_type>
value_type* mn::container::basic_ring_buffer_iterator< T, E >::m_buf
private

◆ m_pos

template<typename T , typename E = typename T::value_type>
size_t mn::container::basic_ring_buffer_iterator< T, E >::m_pos
private

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