|
using | parent_type = typename Traits::parent |
|
using | positions_type = typename Traits::positions_type |
|
using | sizes_type = typename Traits::sizes_type |
|
using | element_blocks_type = typename Traits::element_blocks_type |
|
using | size_type = typename Traits::parent::size_type |
|
using | node = mdds::detail::mtv::iterator_value_node< parent_type, size_type > |
|
using | positions_iterator_type = typename Traits::positions_iterator_type |
|
using | sizes_iterator_type = typename Traits::sizes_iterator_type |
|
using | element_blocks_iterator_type = typename Traits::element_blocks_iterator_type |
|
|
| iterator_updater (const grouped_iterator_type &pos, const grouped_iterator_type &end, const parent_type *parent, 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, const parent_type *parent, size_type block_index) |
|
| iterator_updater (const iterator_updater &other) |
|
void | update_node () |
|
node * | inc () |
|
node * | dec () |
|
void | _print_state (std::ostream &os) const |
|
template<typename Traits>
class mdds::mtv::soa::detail::iterator_updater< Traits >
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