![]() |
stldb::trans_iterator
// In header: </Users/bobw/workspaces/STLdb/stldb_lib/stldb/containers/trans_iterator.h> template<typename container_t, typename base_iterator, bool IsConst> class trans_iterator : public std::iterator< iterator_traits< base_iterator >::iterator_category, iterator_traits< base_iterator >::value_type, iterator_traits< base_iterator >::difference_type, if_c< IsConst, container_t::const_pointer, container_t::pointer >::type, if_c< IsConst, container_t::const_reference, container_t::reference >::type > { public: // types typedef iterator_traits< base_iterator >::value_type value_type; typedef unspecified pointer; typedef unspecified reference; // construct/copy/destruct trans_iterator(); trans_iterator(base_iterator, container_t *); trans_iterator(base_iterator, container_t *, Transaction &); trans_iterator(const trans_iterator &); template<typename NonConstBaseIterator> trans_iterator(const trans_iterator< container_t, NonConstBaseIterator, false > &); // public member functions reference operator*() const; pointer operator->() const; trans_iterator & operator++(); trans_iterator & operator--(); trans_iterator operator++(int); trans_iterator operator--(int); base_iterator & base(); bool valid() const; base_iterator container_end(); // private member functions void skip_forward(); void skip_backward(); void forward(); void backward(); void set_current(); };
trans_iterator
public
construct/copy/destructtrans_iterator();
trans_iterator(base_iterator i, container_t * container);
TODO: There seems to be a bug with boost::interprocess::map<>, because although map::value_type is pair<const K, V>, it seems that map::iterator::operator* is returning pair<K,V>, in violation of current C++ standards. The workaround are the reinterpret casts seen below and in the tcc.
trans_iterator(base_iterator i, container_t * container, Transaction & trans);
trans_iterator(const trans_iterator & rarg);
template<typename NonConstBaseIterator> trans_iterator(const trans_iterator< container_t, NonConstBaseIterator, false > & rarg);
trans_iterator public member functionsreference operator*() const;
pointer operator->() const;
trans_iterator & operator++();
trans_iterator & operator--();
trans_iterator operator++(int n);
trans_iterator operator--(int n);
base_iterator & base();
bool valid() const;
base_iterator container_end();