20 #ifndef PALUDIS_GUARD_PALUDIS_UTIL_WRAPPED_FORWARD_ITERATOR_HH 21 #define PALUDIS_GUARD_PALUDIS_UTIL_WRAPPED_FORWARD_ITERATOR_HH 1 23 #include <paludis/util/wrapped_forward_iterator-fwd.hh> 24 #include <paludis/util/operators.hh> 27 #include <type_traits> 39 template <
typename Tag_,
typename Value_>
41 public equality_operators::HasEqualityOperators
44 WrappedForwardIteratorUnderlyingIteratorHolder * _iter;
52 WrappedForwardIterator();
53 ~WrappedForwardIterator();
54 WrappedForwardIterator(
const WrappedForwardIterator &);
56 template <
typename T_>
57 WrappedForwardIterator(
const T_ &);
59 WrappedForwardIterator & operator= (
const WrappedForwardIterator &);
66 typedef typename std::remove_reference<Value_>::type & value_type;
67 typedef typename std::remove_reference<Value_>::type & reference;
68 typedef typename std::remove_reference<Value_>::type * pointer;
69 typedef std::ptrdiff_t difference_type;
70 typedef std::forward_iterator_tag iterator_category;
77 WrappedForwardIterator & operator++ ();
78 WrappedForwardIterator operator++ (
int);
85 pointer operator-> ()
const;
86 reference operator* ()
const;
93 bool operator== (
const WrappedForwardIterator &)
const;
100 template <
typename T_> T_ & underlying_iterator();
101 template <
typename T_>
const T_ & underlying_iterator()
const;
Definition: about_metadata-fwd.hh:23
#define PALUDIS_VISIBLE
Definition: attributes.hh:59
bool operator==(const PackageID &, const PackageID &) PALUDIS_ATTRIBUTE((warn_unused_result)) PALUDIS_VISIBLE