hpx/iterator_support/zip_iterator.hpp

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

template<typename ...Ts>
class zip_iterator<hpx::tuple<Ts...>> : public hpx::util::detail::zip_iterator_base<hpx::tuple<Ts...>, zip_iterator<hpx::tuple<Ts...>>>

Public Functions

constexpr zip_iterator()
constexpr zip_iterator(Ts const&... vs)
constexpr zip_iterator(hpx::tuple<Ts...> &&t)
constexpr zip_iterator(zip_iterator const &other)
constexpr zip_iterator(zip_iterator &&other)
zip_iterator &operator=(zip_iterator const &other)
zip_iterator &operator=(zip_iterator &&other)
template<typename ...Ts_>
std::enable_if_t<std::is_assignable_v<typename zip_iterator::iterator_tuple_type&, typename zip_iterator<Ts_...>::iterator_tuple_type&&>, zip_iterator&> operator=(zip_iterator<Ts_...> const &other)
template<typename ...Ts_>
std::enable_if_t<std::is_assignable_v<typename zip_iterator::iterator_tuple_type&, typename zip_iterator<Ts_...>::iterator_tuple_type&&>, zip_iterator&> operator=(zip_iterator<Ts_...> &&other)

Private Types

template<>
using base_type = detail::zip_iterator_base<hpx::tuple<Ts...>, zip_iterator<hpx::tuple<Ts...>>>
template<typename F, typename ...Ts>
struct lift_zipped_iterators<F, util::zip_iterator<Ts...>>

Public Types

template<>
using tuple_type = typename util::zip_iterator<Ts...>::iterator_tuple_type
template<>
using result_type = hpx::tuple<typename element_result_of<typename F::template apply<Ts>, Ts>::type...>

Public Static Functions

template<std::size_t... Is, typename ...Ts_>
static result_type call(util::index_pack<Is...>, hpx::tuple<Ts_...> const &t)
template<typename ...Ts_>
static result_type call(util::zip_iterator<Ts_...> const &iter)
namespace hpx
namespace traits
namespace functional
template<typename F, typename ...Ts>
struct lift_zipped_iterators<F, util::zip_iterator<Ts...>>

Public Types

template<>
using tuple_type = typename util::zip_iterator<Ts...>::iterator_tuple_type
template<>
using result_type = hpx::tuple<typename element_result_of<typename F::template apply<Ts>, Ts>::type...>

Public Static Functions

template<std::size_t... Is, typename ...Ts_>
static result_type call(util::index_pack<Is...>, hpx::tuple<Ts_...> const &t)
template<typename ...Ts_>
static result_type call(util::zip_iterator<Ts_...> const &iter)
namespace util

Functions

template<typename ...Ts>
constexpr zip_iterator<std::decay_t<Ts>...> make_zip_iterator(Ts&&... vs)
template<typename ...Ts>
class zip_iterator : public hpx::util::detail::zip_iterator_base<hpx::tuple<Ts...>, zip_iterator<Ts...>>

Public Functions

constexpr zip_iterator()
constexpr zip_iterator(Ts const&... vs)
constexpr zip_iterator(hpx::tuple<Ts...> &&t)
constexpr zip_iterator(zip_iterator const &other)
constexpr zip_iterator(zip_iterator &&other)
zip_iterator &operator=(zip_iterator const &other)
zip_iterator &operator=(zip_iterator &&other)
template<typename ...Ts_>
std::enable_if_t<std::is_assignable_v<typename zip_iterator::iterator_tuple_type&, typename zip_iterator<Ts_...>::iterator_tuple_type&&>, zip_iterator&> operator=(zip_iterator<Ts_...> const &other)
template<typename ...Ts_>
std::enable_if_t<std::is_assignable_v<typename zip_iterator::iterator_tuple_type&, typename zip_iterator<Ts_...>::iterator_tuple_type&&>, zip_iterator&> operator=(zip_iterator<Ts_...> &&other)

Private Types

template<>
using base_type = detail::zip_iterator_base<hpx::tuple<Ts...>, zip_iterator<Ts...>>
template<typename ...Ts>
class zip_iterator<hpx::tuple<Ts...>> : public hpx::util::detail::zip_iterator_base<hpx::tuple<Ts...>, zip_iterator<hpx::tuple<Ts...>>>

Public Functions

constexpr zip_iterator()
constexpr zip_iterator(Ts const&... vs)
constexpr zip_iterator(hpx::tuple<Ts...> &&t)
constexpr zip_iterator(zip_iterator const &other)
constexpr zip_iterator(zip_iterator &&other)
zip_iterator &operator=(zip_iterator const &other)
zip_iterator &operator=(zip_iterator &&other)
template<typename ...Ts_>
std::enable_if_t<std::is_assignable_v<typename zip_iterator::iterator_tuple_type&, typename zip_iterator<Ts_...>::iterator_tuple_type&&>, zip_iterator&> operator=(zip_iterator<Ts_...> const &other)
template<typename ...Ts_>
std::enable_if_t<std::is_assignable_v<typename zip_iterator::iterator_tuple_type&, typename zip_iterator<Ts_...>::iterator_tuple_type&&>, zip_iterator&> operator=(zip_iterator<Ts_...> &&other)

Private Types

template<>
using base_type = detail::zip_iterator_base<hpx::tuple<Ts...>, zip_iterator<hpx::tuple<Ts...>>>