mdds
Public Types | Public Member Functions | List of all members
mdds::mtv::soa::detail::iterator_base< Traits > Class Template Reference
Inheritance diagram for mdds::mtv::soa::detail::iterator_base< Traits >:
mdds::mtv::soa::detail::iterator_updater< Traits >

Public Types

using value_type = typename updater::node
 
using pointer = value_type *
 
using reference = value_type &
 
using difference_type = ptrdiff_t
 
using iterator_category = std::bidirectional_iterator_tag
 

Public Member Functions

 iterator_base (const grouped_iterator_type &pos, const grouped_iterator_type &end, const parent_type *parent, size_type block_index)
 
value_type & operator* ()
 
const value_type & operator* () const
 
value_type * operator-> ()
 
const value_type * operator-> () const
 
iterator_baseoperator++ ()
 
iterator_baseoperator-- ()
 
void _print_state (std::ostream &os) const
 
const grouped_iterator_type & get_end () const
 
const grouped_iterator_type & get_pos () const
 
- Public Member Functions inherited from mdds::mtv::soa::detail::iterator_updater< Traits >
bool operator== (const iterator_updater &other) const
 
bool operator!= (const iterator_updater &other) const
 
iterator_updateroperator= (const iterator_updater &other)
 
void swap (iterator_updater &other)
 
const nodeget_node () const
 
const grouped_iterator_typeget_pos () const
 
const grouped_iterator_typeget_end () const
 

Additional Inherited Members

- Protected Types inherited from mdds::mtv::soa::detail::iterator_updater< Traits >
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
 
- Protected Member Functions inherited from mdds::mtv::soa::detail::iterator_updater< Traits >
 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 ()
 
nodeinc ()
 
nodedec ()
 
void _print_state (std::ostream &os) const
 
- Protected Attributes inherited from mdds::mtv::soa::detail::iterator_updater< Traits >
node m_cur_node
 
grouped_iterator_type m_pos
 
grouped_iterator_type m_end