mdds
|
#include <iterator.hpp>
Classes | |
struct | grouped_iterator_type |
Public Member Functions | |
bool | operator== (const iterator_updater &other) const |
bool | operator!= (const iterator_updater &other) const |
iterator_updater & | operator= (const iterator_updater &other) |
void | swap (iterator_updater &other) |
const node & | get_node () const |
const grouped_iterator_type & | get_pos () const |
const grouped_iterator_type & | get_end () const |
Protected Types | |
using | parent_type = typename _Trait::parent |
using | positions_type = typename _Trait::positions_type |
using | sizes_type = typename _Trait::sizes_type |
using | element_blocks_type = typename _Trait::element_blocks_type |
using | size_type = typename _Trait::parent::size_type |
using | node = mdds::detail::mtv::iterator_value_node< size_type > |
using | positions_iterator_type = typename _Trait::positions_iterator_type |
using | sizes_iterator_type = typename _Trait::sizes_iterator_type |
using | element_blocks_iterator_type = typename _Trait::element_blocks_iterator_type |
Protected Member Functions | |
iterator_updater (const grouped_iterator_type &pos, const grouped_iterator_type &end, size_type block_index) | |
iterator_updater (const positions_iterator_type &positions_pos, const sizes_iterator_type &sizes_pos, const element_blocks_iterator_type &eb_pos, const positions_iterator_type &positions_end, const sizes_iterator_type &sizes_end, const element_blocks_iterator_type &eb_end, size_type block_index) | |
iterator_updater (const iterator_updater &other) | |
void | update_node () |
node * | inc () |
node * | dec () |
void | _print_state (std::ostream &os) const |
Protected Attributes | |
node | m_cur_node |
grouped_iterator_type | m_pos |
grouped_iterator_type | m_end |
Common base for both const and non-const iterators to handle traversal of the internal source 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.
The trait struct needs to have the following static member types:
parent
positions_type
sizes_type
element_blocks_type