mdds
Loading...
Searching...
No Matches
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< const_iterator_trait, itr_forward_update, iterator > mdds::mtv::aos::detail::const_iterator_base< const_reverse_iterator_trait, itr_no_update, reverse_iterator > mdds::mtv::aos::detail::iterator_base< iterator_trait, itr_forward_update > mdds::mtv::aos::detail::iterator_base< reverse_iterator_trait, itr_no_update > 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_base & operator= (const iterator_common_base &other)
void swap (iterator_common_base &other)
const node & get_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 ()
node * inc ()
node * dec ()

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.