15#ifndef SEEN_INKSCAPE_UTIL_FORWARD_POINTER_ITERATOR_H
16#define SEEN_INKSCAPE_UTIL_FORWARD_POINTER_ITERATOR_H
26template <
typename BaseType,
typename Strategy>
27class ForwardPointerIterator;
29template <
typename BaseType,
typename Strategy>
49 return _p == other.
_p;
52 return _p != other.
_p;
56 _p = Strategy::next(_p);
65 operator bool()
const {
return _p !=
nullptr; }
71template <
typename BaseType,
typename Strategy>
reference operator*() const
Traits::Reference< BaseTypeconst >::LValue reference
ForwardPointerIterator< BaseType const, Strategy > Self
Traits::Reference< BaseTypeconst >::RValue const_reference
ForwardPointerIterator(pointer p)
std::forward_iterator_tag iterator_category
ForwardPointerIterator()=default
Traits::Reference< BaseTypeconst >::LValue value_type
bool operator!=(Self const &other) const
std::ptrdiff_t difference_type
Traits::Reference< BaseTypeconst >::Pointer pointer
bool operator==(Self const &other) const
pointer operator->() const
ForwardPointerIterator< BaseType const, Strategy > Ancestor
pointer operator->() const
Traits::Reference< BaseType >::Pointer pointer
Traits::Reference< BaseType >::RValue const_reference
Traits::Reference< BaseType >::LValue reference
reference operator*() const
Traits::Reference< BaseType >::LValue value_type
ForwardPointerIterator(pointer p)
ForwardPointerIterator< BaseType, Strategy > Self
Miscellaneous supporting code.
Helper class to stream background task notifications as a series of messages.