mdds
Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
mdds::detail::mtv::iterator_common_base< _Trait > Class Template Reference

#include <multi_type_vector_itr.hpp>

Inheritance diagram for mdds::detail::mtv::iterator_common_base< _Trait >:
mdds::detail::mtv::const_iterator_base< _Trait, _NodeUpdateFunc, _NonConstItrBase > mdds::detail::mtv::iterator_base< _Trait, _NodeUpdateFunc >

Public Member Functions

bool operator== (const iterator_common_base &other) const
 
bool operator!= (const iterator_common_base &other) const
 
iterator_common_baseoperator= (const iterator_common_base &other)
 
void swap (iterator_common_base &other)
 
const nodeget_node () const
 
const base_iterator_type & get_pos () const
 
const base_iterator_type & get_end () const
 

Protected Types

typedef _Trait::parent parent_type
 
typedef _Trait::blocks blocks_type
 
typedef _Trait::base_iterator base_iterator_type
 
typedef parent_type::size_type size_type
 
typedef iterator_value_node< size_type, typename parent_type::element_block_type > node
 

Protected Member Functions

 iterator_common_base (const base_iterator_type &pos, const base_iterator_type &end, size_type start_pos, size_type block_index)
 
 iterator_common_base (const iterator_common_base &other)
 
void update_node ()
 
nodeinc ()
 
nodedec ()
 

Protected Attributes

node m_cur_node
 
base_iterator_type m_pos
 
base_iterator_type m_end
 

Detailed Description

template<typename _Trait>
class mdds::detail::mtv::iterator_common_base< _Trait >

Common base for both const and non-const iterators. Its protected inc() and dec() methods have non-const return type, and the derived classes wrap them and return values with their respective const modifiers.