hpx/iterator_support/counting_iterator.hpp

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

template<typename Incrementable, typename CategoryOrTraversal, typename Difference>
class counting_iterator<Incrementable, CategoryOrTraversal, Difference, std::enable_if_t<std::is_integral_v<Incrementable>>> : public hpx::util::iterator_adaptor<counting_iterator<Incrementable, CategoryOrTraversal, Difference>, Incrementable, Incrementable, traversal, Incrementable const&, difference>

Public Functions

counting_iterator()
counting_iterator(counting_iterator &&rhs)
counting_iterator &operator=(counting_iterator &&rhs)
counting_iterator(counting_iterator const &rhs)
counting_iterator &operator=(counting_iterator const &rhs)
constexpr counting_iterator(Incrementable x)

Private Types

template<>
using base_type = typename detail::counting_iterator_base<Incrementable, CategoryOrTraversal, Difference>::type

Private Functions

template<typename Iterator>
constexpr bool equal(Iterator const &rhs) const
void increment()
void decrement()
template<typename Distance>
void advance(Distance n)
constexpr base_type::reference dereference() const
template<typename OtherIncrementable>
base_type::difference_type distance_to(counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const &y) const

Friends

friend iterator_core_access
namespace hpx
namespace util

Functions

template<typename Incrementable>
constexpr counting_iterator<Incrementable> make_counting_iterator(Incrementable x)
template<typename Incrementable, typename CategoryOrTraversal, typename Difference, typename Enable>
class counting_iterator

Public Functions

counting_iterator()
counting_iterator(counting_iterator &&rhs)
counting_iterator &operator=(counting_iterator &&rhs)
counting_iterator(counting_iterator const &rhs)
counting_iterator &operator=(counting_iterator const &rhs)
constexpr counting_iterator(Incrementable x)

Private Types

template<>
using base_type = typename detail::counting_iterator_base<Incrementable, CategoryOrTraversal, Difference>::type

Private Functions

constexpr base_type::reference dereference() const

Friends

friend hpx::util::iterator_core_access
template<typename Incrementable, typename CategoryOrTraversal, typename Difference>
class counting_iterator<Incrementable, CategoryOrTraversal, Difference, std::enable_if_t<std::is_integral_v<Incrementable>>> : public hpx::util::iterator_adaptor<counting_iterator<Incrementable, CategoryOrTraversal, Difference>, Incrementable, Incrementable, traversal, Incrementable const&, difference>

Public Functions

counting_iterator()
counting_iterator(counting_iterator &&rhs)
counting_iterator &operator=(counting_iterator &&rhs)
counting_iterator(counting_iterator const &rhs)
counting_iterator &operator=(counting_iterator const &rhs)
constexpr counting_iterator(Incrementable x)

Private Types

template<>
using base_type = typename detail::counting_iterator_base<Incrementable, CategoryOrTraversal, Difference>::type

Private Functions

template<typename Iterator>
constexpr bool equal(Iterator const &rhs) const
void increment()
void decrement()
template<typename Distance>
void advance(Distance n)
constexpr base_type::reference dereference() const
template<typename OtherIncrementable>
base_type::difference_type distance_to(counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const &y) const

Friends

friend hpx::util::iterator_core_access