19#ifndef PALUDIS_GUARD_PALUDIS_UTIL_ITERATOR_RANGE_HH
20#define PALUDIS_GUARD_PALUDIS_UTIL_ITERATOR_RANGE_HH 1
27 template <
typename Iterator_>
31 Iterator_ _begin, _end;
34 using const_iterator = Iterator_;
35 using value_type =
typename Iterator_::value_type;
39 template <
typename Container_>
40 IteratorRange(Container_ && container)
41 : _begin(std::begin(container)), _end(std::end(container))
45 IteratorRange(Iterator_ begin, Iterator_ end)
46 : _begin(std::move(begin)), _end(std::move(end))
50 Iterator_ begin()
const
62 return std::distance(_begin, _end);
67 return _begin == _end;
71 template <
typename Iterator_>
77 template <
typename Iterator_>
78 IteratorRange<Iterator_> make_range(std::pair<Iterator_, Iterator_> range)
80 return IteratorRange<Iterator_>(std::move(range.first),
81 std::move(range.second));
Definition iterator_range.hh:29
Definition about_metadata-fwd.hh:24