60 template<
typename iterator_type>
63 typedef typename std::iterator_traits<iterator_type>::value_type
value_type;
75 }
catch (
const std::bad_cast&) {}
84 template<
typename iter_type>
99 return itrref->Dereference();
103 return &
itrref->Dereference();
virtual void Increment()=0
IteratorRef(const IteratorRef &itr)
bool Equals(const ItrRef *rhs) const
bool operator!=(const IteratorRef< T > &rhs) const
virtual ItrRef * Clone() const =0
virtual void Decrement()=0
virtual T & Dereference()=0
ItrRefImpl(iterator_type itr_)
std::iterator_traits< iterator_type >::value_type value_type
IteratorRef(iter_type itr)
IteratorRef & operator=(const IteratorRef &itr)
bool operator==(const IteratorRef< T > &rhs) const
value_type & Dereference()
A reference to an iterator.
IteratorRef operator--(int)
virtual bool Equals(const ItrRef *rhs) const =0
IteratorRef operator++(int)
std::auto_ptr< ItrRef > itrref