hpx/iterator_support/iterator_range.hpp

See Public API for a list of names and headers that are part of the public HPX API.

namespace hpx
namespace ranges

Typedefs

template<typename I, typename S = I>
using subrange_t = hpx::util::iterator_range<I, S>
namespace util

Functions

template<typename Range, typename Iterator = traits::range_iterator_t<Range>, typename Sentinel = traits::range_iterator_t<Range>>
constexpr std::enable_if_t<traits::is_range_v<Range>, iterator_range<Iterator, Sentinel>> make_iterator_range(Range &r)
template<typename Range, typename Iterator = traits::range_iterator_t<Range const>, typename Sentinel = traits::range_iterator_t<Range const>>
constexpr std::enable_if_t<traits::is_range_v<Range>, iterator_range<Iterator, Sentinel>> make_iterator_range(Range const &r)
template<typename Iterator, typename Sentinel = Iterator>
constexpr std::enable_if_t<traits::is_iterator_v<Iterator>, iterator_range<Iterator, Sentinel>> make_iterator_range(Iterator iterator, Sentinel sentinel)
template<typename Iterator, typename Sentinel = Iterator>
class iterator_range

Public Functions

iterator_range()
constexpr iterator_range(Iterator iterator, Sentinel sentinel)
constexpr Iterator begin() const
constexpr Iterator end() const
constexpr std::ptrdiff_t size() const
constexpr bool empty() const

Private Members

Iterator _iterator
Sentinel _sentinel