22 template<
typename T_
idxType>
29 static_assert(std::forward_iterator<MdForwardIterEnd>);
50 return !(*
this == other);
57 template<alpaka::concepts::IMdSpan T_MdSpan>
60 template<alpaka::concepts::IMdSpan T_MdSpan>
67 static constexpr uint32_t
iterDim = T_MdSpan::dim();
72 static_assert(std::forward_iterator<MdForwardIter>);
73 static_assert(std::input_or_output_iterator<MdForwardIter>);
80 for(uint32_t idx = 0; idx <
iterDim; ++idx)
95 constexpr decltype(
auto)
operator*()
const
100 constexpr decltype(
auto)
operator*()
108 for(uint32_t d = 0; d <
iterDim; ++d)
110 uint32_t
const idx =
iterDim - 1u - d;
140 return !(*
this == other);
148 template<
typename T_MdSpan>
156 template<
typename T_MdSpan>
161 return !(mdIteratorEnd == mdIter);
164 template<
typename T_MdSpan>
172 template<
typename T_MdSpan>
177 return !(mdIteratorEnd == mdIter);
special implementation to define the end
constexpr bool operator!=(MdForwardIterEnd const &other) const
constexpr auto operator*() const
constexpr bool operator==(MdForwardIterEnd const &other) const
constexpr MdForwardIterEnd(alpaka::concepts::IMdSpan auto const &mdSpan)
index_type m_extentSlowDim
ALPAKA_FN_ACC constexpr index_type slowCurrent() const
ALPAKA_FN_ACC MdForwardIter operator++(int)
typename T_MdSpan::index_type index_type
static constexpr uint32_t iterDim
ALPAKA_FN_ACC MdForwardIter & operator++()
constexpr bool operator!=(MdForwardIter const &other) const
constexpr bool operator==(MdForwardIter const &other) const
Vec< index_type, iterDim > IterIdxVecType
constexpr MdForwardIter(T_MdSpan const &mdSpan)
#define ALPAKA_FN_ACC
All functions that can be used on an accelerator have to be attributed with ALPAKA_FN_ACC or ALPAKA_F...
#define ALPAKA_FN_HOST_ACC
All functions that can be used on an accelerator have to be attributed with ALPAKA_FN_ACC or ALPAKA_F...
Interface concept for objects describing multidimensional memory access.
ALPAKA_FN_HOST_ACC MdForwardIterEnd(T_MdSpan const &) -> MdForwardIterEnd< typename T_MdSpan::index_type >
constexpr bool operator!=(concepts::Executor auto lhs, concepts::Executor auto rhs)
constexpr bool operator==(concepts::Executor auto lhs, concepts::Executor auto rhs)