1 #ifndef WIRECELL_ITERATORBASE 2 #define WIRECELL_ITERATORBASE 15 template <
typename ValueType>
27 virtual value_type
operator* ()
const = 0;
71 template <
typename adapted_iterator,
typename base_iterator>
85 return m_it == dc(rhs).m_it;
88 return m_it != dc(rhs).m_it;
IteratorAdapter(adapted_iterator it)
bool operator!=(const base_iterator &rhs) const
typename traits_t::value_type value_type
base_iterator & operator++()
base_iterator::value_type value_type
const IteratorAdapter & dc(const base_iterator &other) const
virtual ~IteratorAdapter()
value_type operator*() const
virtual IteratorBase * clone() const =0
base_iterator * clone() const
virtual value_type operator*() const =0
bool operator==(const base_iterator &rhs) const
base_iterator & operator=(const base_iterator &rhs)
virtual bool operator==(const IteratorBase &rhs) const =0
virtual bool operator!=(const IteratorBase &rhs) const =0
virtual IteratorBase & operator++()=0
virtual IteratorBase & operator=(const IteratorBase &rhs)=0