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

#include <iterator.hpp>

Inheritance diagram for mdds::mtv::aos::detail::iterator_common_base< Traits >:
mdds::mtv::aos::detail::const_iterator_base< Traits, NodeUpdateFunc, NonConstItrBase > mdds::mtv::aos::detail::iterator_base< Traits, 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 Traits::parent parent_type
 
typedef Traits::blocks blocks_type
 
typedef Traits::base_iterator base_iterator_type
 
typedef parent_type::size_type size_type
 
typedef mdds::detail::mtv::iterator_value_node< parent_type, size_type > node
 

Protected Member Functions

 iterator_common_base (const base_iterator_type &pos, const base_iterator_type &end, const parent_type *parent, 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 Traits>
class mdds::mtv::aos::detail::iterator_common_base< Traits >

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.