iterator_support¶
The contents of this module can be included with the header
hpx/modules/iterator_support.hpp
. These headers may be used by user-code but are not
guaranteed stable (neither header location nor contents). You are using these at
your own risk. If you wish to use non-public functionality from a module we
strongly suggest only including the module header hpx/modules/iterator_support.hpp
, not
the particular header in which the functionality you would like to use is
defined. See Public API for a list of names that are part of the public
HPX API.
Header hpx/iterator_support/counting_iterator.hpp
¶
-
template<typename
Incrementable
, typenameCategoryOrTraversal
, typenameDifference
>
classcounting_iterator
<Incrementable, CategoryOrTraversal, Difference, typename std::enable_if<std::is_integral<Incrementable>::value>::type> : public hpx::util::iterator_adaptor<counting_iterator<Incrementable, CategoryOrTraversal, Difference>, Incrementable, Incrementable, traversal, Incrementable const&, difference>¶ - #include <counting_iterator.hpp>
Public Functions
-
counting_iterator
()¶
-
counting_iterator
(counting_iterator const &rhs)¶
-
counting_iterator
(Incrementable x)¶
Private Types
-
template<>
usingbase_type
= typename detail::counting_iterator_base<Incrementable, CategoryOrTraversal, Difference>::type¶
Private Functions
-
void
increment
()¶
-
void
decrement
()¶
-
base_type::reference
dereference
() const¶
-
template<typename
OtherIncrementable
>
base_type::difference_typedistance_to
(counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const &y) const¶
Friends
-
friend
iterator_core_access
-
-
namespace
hpx
-
namespace
util
Functions
-
template<typename
Incrementable
>
counting_iterator<Incrementable>make_counting_iterator
(Incrementable x)¶
-
template<typename
Incrementable
, typenameCategoryOrTraversal
, typenameDifference
, typenameEnable
>
classcounting_iterator
: public hpx::util::iterator_adaptor<counting_iterator<Incrementable, CategoryOrTraversal, Difference>, Incrementable, Incrementable, traversal, Incrementable const&, difference>¶ - #include <counting_iterator.hpp>
Public Functions
-
counting_iterator
()
-
counting_iterator
(counting_iterator const &rhs)
-
counting_iterator
(Incrementable x)
Private Types
-
template<>
usingbase_type
= typename detail::counting_iterator_base<Incrementable, CategoryOrTraversal, Difference>::type¶
Private Functions
-
base_type::reference
dereference
() const
Friends
-
friend
hpx::util::iterator_core_access
-
-
template<typename
Incrementable
, typenameCategoryOrTraversal
, typenameDifference
>
classcounting_iterator
<Incrementable, CategoryOrTraversal, Difference, typename std::enable_if<std::is_integral<Incrementable>::value>::type> : public hpx::util::iterator_adaptor<counting_iterator<Incrementable, CategoryOrTraversal, Difference>, Incrementable, Incrementable, traversal, Incrementable const&, difference> - #include <counting_iterator.hpp>
Public Functions
-
counting_iterator
()
-
counting_iterator
(counting_iterator const &rhs)
-
counting_iterator
(Incrementable x)
Private Types
-
template<>
usingbase_type
= typename detail::counting_iterator_base<Incrementable, CategoryOrTraversal, Difference>::type
Private Functions
-
template<typename
Iterator
>
boolequal
(Iterator const &rhs) const
-
void
increment
()
-
void
decrement
()
-
template<typename
Distance
>
voidadvance
(Distance n)
-
base_type::reference
dereference
() const
-
template<typename
OtherIncrementable
>
base_type::difference_typedistance_to
(counting_iterator<OtherIncrementable, CategoryOrTraversal, Difference> const &y) const
Friends
-
friend
hpx::util::iterator_core_access
-
-
template<typename
-
namespace
Header hpx/iterator_support/iterator_adaptor.hpp
¶
-
namespace
hpx
-
namespace
util
-
template<typename
Derived
, typenameBase
, typenameValue
= void, typenameCategory
= void, typenameReference
= void, typenameDifference
= void, typenamePointer
= void>
classiterator_adaptor
: public hpx::util::iterator_facade<Derived, value_type, iterator_category, reference_type, difference_type, Pointer>¶ - #include <iterator_adaptor.hpp>
Subclassed by hpx::util::counting_iterator< Incrementable, CategoryOrTraversal, Difference, Enable >, hpx::util::counting_iterator< Incrementable, CategoryOrTraversal, Difference, typename std::enable_if< std::is_integral< Incrementable >::value >::type >, hpx::util::transform_iterator< Iterator, Transformer, Reference, Value, Category, Difference >
Public Types
-
typedef Base
base_type
¶
Protected Types
-
typedef hpx::util::detail::iterator_adaptor_base<Derived, Base, Value, Category, Reference, Difference, Pointer>::type
base_adaptor_type
¶
-
typedef iterator_adaptor<Derived, Base, Value, Category, Reference, Difference, Pointer>
iterator_adaptor_
¶
Private Functions
-
base_adaptor_type::reference
dereference
() const¶
-
template<typename
OtherDerived
, typenameOtherIterator
, typenameV
, typenameC
, typenameR
, typenameD
, typenameP
>
boolequal
(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D, P> const &x) const¶
-
template<typename
DifferenceType
>
voidadvance
(DifferenceType n)¶
-
void
increment
()¶
-
template<typename
Iterator
= Base, typenameEnable
= typename std::enable_if<traits::is_bidirectional_iterator<Iterator>::value>::type>
voiddecrement
()¶
-
template<typename
OtherDerived
, typenameOtherIterator
, typenameV
, typenameC
, typenameR
, typenameD
, typenameP
>
base_adaptor_type::difference_typedistance_to
(iterator_adaptor<OtherDerived, OtherIterator, V, C, R, D, P> const &y) const¶
Private Members
-
Base
iterator_
¶
Friends
-
friend
hpx::util::hpx::util::iterator_core_access
-
typedef Base
-
template<typename
-
namespace
Header hpx/iterator_support/iterator_facade.hpp
¶
Defines
-
HPX_UTIL_ITERATOR_FACADE_INTEROP_HEAD
(prefix, op, result_type)¶
-
namespace
hpx
-
namespace
util
Functions
-
template<typename
Derived
, typenameT
, typenameCategory
, typenameReference
, typenameDistance
, typenamePointer
>
util::detail::postfix_increment_result<Derived, typename Derived::value_type, typename Derived::reference>::typeoperator++
(iterator_facade<Derived, T, Category, Reference, Distance, Pointer> &i, int)¶
-
hpx::util::HPX_UTIL_ITERATOR_FACADE_INTEROP_HEAD(inline, bool)
-
hpx::util::HPX_UTIL_ITERATOR_FACADE_INTEROP_HEAD(inline, !, bool)
-
hpx::util::HPX_UTIL_ITERATOR_FACADE_INTEROP_HEAD(inline)
-
hpx::util::HPX_UTIL_ITERATOR_FACADE_INTEROP_HEAD(inline, <=, bool)
-
hpx::util::HPX_UTIL_ITERATOR_FACADE_INTEROP_HEAD(inline, >=, bool)
-
hpx::util::HPX_UTIL_ITERATOR_FACADE_INTEROP_HEAD(inline, -, typename std::iterator_traits< Derived2 >::difference_type)
-
class
iterator_core_access
¶ - #include <iterator_facade.hpp>
-
template<typename
Derived
, typenameT
, typenameCategory
, typenameReference
= T&, typenameDistance
= std::ptrdiff_t, typenamePointer
= void>
structiterator_facade
: public hpx::util::detail::iterator_facade_base<Derived, T, Category, Reference, Distance, Pointer>¶ - #include <iterator_facade.hpp>
Subclassed by hpx::util::iterator_adaptor< Derived, Base, Value, Category, Reference, Difference, Pointer >
Public Functions
-
iterator_facade
()¶
Protected Types
-
typedef iterator_facade<Derived, T, Category, Reference, Distance, Pointer>
iterator_adaptor_
¶
Private Types
-
typedef detail::iterator_facade_base<Derived, T, Category, Reference, Distance, Pointer>
base_type
¶
-
-
template<typename
-
namespace
Header hpx/iterator_support/iterator_range.hpp
¶
-
namespace
hpx
-
namespace
util
Functions
-
template<typename
Range
, typenameIterator
= typename traits::range_iterator<Range>::type, typenameSentinel
= typename traits::range_iterator<Range>::type>
std::enable_if<traits::is_range<Range>::value, iterator_range<Iterator, Sentinel>>::typemake_iterator_range
(Range &r)¶
-
template<typename
-
namespace
Header hpx/iterator_support/range.hpp
¶
-
namespace
hpx
-
namespace
util
-
namespace
range_adl
¶ Functions
-
template<typename
C
, typenameIterator
= typename detail::iterator<C>::type>
constexpr Iteratorbegin
(C &c)¶
-
template<typename
C
, typenameIterator
= typename detail::iterator<C const>::type>
constexpr Iteratorbegin
(C const &c)¶
-
template<typename
C
, typenameSentinel
= typename detail::sentinel<C>::type>
constexpr Sentinelend
(C &c)¶
-
template<typename
C
, typenameSentinel
= typename detail::sentinel<C const>::type>
constexpr Sentinelend
(C const &c)¶
-
template<typename
-
namespace
-
namespace
Header hpx/iterator_support/traits/is_iterator.hpp
¶
Header hpx/iterator_support/traits/is_range.hpp
¶
Header hpx/iterator_support/traits/is_sentinel_for.hpp
¶
-
namespace
hpx
-
namespace
traits
Variables
-
template<typename Sent, typename Iter>HPX_INLINE_CONSTEXPR_VARIABLE bool hpx::traits::disable_sized_sentinel_for = false
-
-
namespace
Header hpx/iterator_support/transform_iterator.hpp
¶
-
namespace
hpx
-
namespace
util
Functions
-
template<typename
Transformer
, typenameIterator
>
transform_iterator<Iterator, Transformer>make_transform_iterator
(Iterator const &it, Transformer const &f)¶
-
template<typename
Transformer
, typenameIterator
>
transform_iterator<Iterator, Transformer>make_transform_iterator
(Iterator const &it)¶
-
template<typename
Iterator
, typenameTransformer
, typenameReference
, typenameValue
, typenameCategory
, typenameDifference
>
classtransform_iterator
: public hpx::util::iterator_adaptor<transform_iterator<Iterator, Transformer, Reference, Value, Category, Difference>, Iterator, value_type, iterator_category, reference_type, difference_type>¶ - #include <transform_iterator.hpp>
Public Functions
-
transform_iterator
()¶
-
transform_iterator
(Iterator const &it)¶
-
transform_iterator
(Iterator const &it, Transformer const &f)¶
-
template<typename
OtherIterator
, typenameOtherTransformer
, typenameOtherReference
, typenameOtherValue
, typenameOtherCategory
, typenameOtherDifference
>transform_iterator
(transform_iterator<OtherIterator, OtherTransformer, OtherReference, OtherValue, OtherCategory, OtherDifference> const &t, typename std::enable_if<std::is_convertible<OtherIterator, Iterator>::value && std::is_convertible<OtherTransformer, Transformer>::value && std::is_convertible<OtherCategory, Category>::value && std::is_convertible<OtherDifference, Difference>::value>::type* = nullptr)¶
-
Transformer const &
transformer
() const¶
Private Types
-
typedef detail::transform_iterator_base<Iterator, Transformer, Reference, Value, Category, Difference>::type
base_type
¶
Private Members
-
Transformer
transformer_
¶
Friends
-
friend
hpx::util::hpx::util::iterator_core_access
-
-
template<typename
-
namespace
Header hpx/iterator_support/zip_iterator.hpp
¶
-
template<typename
F
, typename ...Ts
>
structlift_zipped_iterators
<F, util::zip_iterator<Ts...>>¶ - #include <zip_iterator.hpp>
Public Types
Public Static Functions
-
template<std::size_t...
Is
, typename ...Ts_
>
static result_typecall
(util::index_pack<Is...>, util::tuple<Ts_...> const &t)¶
-
template<typename ...
Ts_
>
static result_typecall
(util::zip_iterator<Ts_...> const &iter)¶
-
template<std::size_t...
-
namespace
hpx
-
namespace
traits
-
namespace
functional
¶ -
template<typename
F
, typename ...Ts
>
structlift_zipped_iterators
<F, util::zip_iterator<Ts...>> - #include <zip_iterator.hpp>
Public Types
-
typedef util::zip_iterator<Ts...>::iterator_tuple_type
tuple_type
-
typedef util::tuple<typename element_result_of<typename F::template apply<Ts>, Ts>::type...>
result_type
Public Static Functions
-
template<std::size_t...
Is
, typename ...Ts_
>
static result_typecall
(util::index_pack<Is...>, util::tuple<Ts_...> const &t)
-
template<typename ...
Ts_
>
static result_typecall
(util::zip_iterator<Ts_...> const &iter)
-
typedef util::zip_iterator<Ts...>::iterator_tuple_type
-
template<typename
-
namespace
-
namespace
util
Functions
-
template<typename ...
Ts
>
classzip_iterator
: public hpx::util::detail::zip_iterator_base<tuple<Ts...>, zip_iterator<Ts...>>¶ - #include <zip_iterator.hpp>
Public Functions
-
zip_iterator
()¶
-
zip_iterator
(Ts const&... vs)¶
-
zip_iterator
(tuple<Ts...> &&t)¶
-
zip_iterator
(zip_iterator const &other)¶
-
zip_iterator
(zip_iterator &&other)¶
-
zip_iterator &
operator=
(zip_iterator const &other)¶
-
zip_iterator &
operator=
(zip_iterator &&other)¶
Private Types
-
typedef detail::zip_iterator_base<tuple<Ts...>, zip_iterator<Ts...>>
base_type
¶
-
-
template<typename ...
Ts
>
classzip_iterator
<tuple<Ts...>> : public hpx::util::detail::zip_iterator_base<tuple<Ts...>, zip_iterator<tuple<Ts...>>>¶ - #include <zip_iterator.hpp>
Public Functions
-
zip_iterator
()
-
zip_iterator
(Ts const&... vs)
-
zip_iterator
(tuple<Ts...> &&t)
-
zip_iterator
(zip_iterator const &other)
-
zip_iterator
(zip_iterator &&other)
-
zip_iterator &
operator=
(zip_iterator const &other)
-
zip_iterator &
operator=
(zip_iterator &&other)
Private Types
-
typedef detail::zip_iterator_base<tuple<Ts...>, zip_iterator<tuple<Ts...>>>
base_type
-
-
template<typename ...
-
namespace