21 #ifndef ROCPRIM_ITERATOR_DISCARD_ITERATOR_HPP_ 22 #define ROCPRIM_ITERATOR_DISCARD_ITERATOR_HPP_ 26 #include <type_traits> 28 #include "../config.hpp" 33 BEGIN_ROCPRIM_NAMESPACE
46 #ifndef DOXYGEN_SHOULD_SKIP_THIS // Skip internal implementation details. 49 ROCPRIM_HOST_DEVICE
inline 53 ROCPRIM_HOST_DEVICE
inline 56 ROCPRIM_HOST_DEVICE
inline 60 ROCPRIM_HOST_DEVICE
inline 66 #endif // DOXYGEN_SHOULD_SKIP_THIS 82 ROCPRIM_HOST_DEVICE
inline 88 ROCPRIM_HOST_DEVICE
inline 91 #ifndef DOXYGEN_SHOULD_SKIP_THIS 92 ROCPRIM_HOST_DEVICE
inline 99 ROCPRIM_HOST_DEVICE
inline 107 ROCPRIM_HOST_DEVICE
inline 114 ROCPRIM_HOST_DEVICE
inline 122 ROCPRIM_HOST_DEVICE
inline 128 ROCPRIM_HOST_DEVICE
inline 135 ROCPRIM_HOST_DEVICE
inline 138 auto i =
static_cast<size_t>(
static_cast<difference_type>(index_) + distance);
142 ROCPRIM_HOST_DEVICE
inline 145 index_ =
static_cast<size_t>(
static_cast<difference_type>(index_) + distance);
149 ROCPRIM_HOST_DEVICE
inline 152 auto i =
static_cast<size_t>(
static_cast<difference_type>(index_) - distance);
156 ROCPRIM_HOST_DEVICE
inline 159 index_ =
static_cast<size_t>(
static_cast<difference_type>(index_) - distance);
163 ROCPRIM_HOST_DEVICE
inline 166 return index_ - other.index_;
169 ROCPRIM_HOST_DEVICE
inline 172 return index_ == other.index_;
175 ROCPRIM_HOST_DEVICE
inline 178 return index_ != other.index_;
181 ROCPRIM_HOST_DEVICE
inline 184 return index_ < other.index_;
187 ROCPRIM_HOST_DEVICE
inline 190 return index_ <= other.index_;
193 ROCPRIM_HOST_DEVICE
inline 196 return index_ > other.index_;
199 ROCPRIM_HOST_DEVICE
inline 202 return index_ >= other.index_;
209 #endif // DOXYGEN_SHOULD_SKIP_THIS 212 mutable size_t index_;
215 #ifndef DOXYGEN_SHOULD_SKIP_THIS 216 ROCPRIM_HOST_DEVICE
inline 221 return iterator + distance;
223 #endif // DOXYGEN_SHOULD_SKIP_THIS 230 ROCPRIM_HOST_DEVICE
inline 237 END_ROCPRIM_NAMESPACE
242 #endif // ROCPRIM_ITERATOR_DISCARD_ITERATOR_HPP_ Definition: discard_iterator.hpp:47
ROCPRIM_HOST_DEVICE bool operator>=(const tuple< TTypes... > &lhs, const tuple< UTypes... > &rhs)
Greater than or equal to operator for tuples.
Definition: tuple.hpp:915
std::random_access_iterator_tag iterator_category
The category of the iterator.
Definition: discard_iterator.hpp:77
ROCPRIM_HOST_DEVICE bool operator<(const tuple< TTypes... > &lhs, const tuple< UTypes... > &rhs)
Less than operator for tuples.
Definition: tuple.hpp:864
ROCPRIM_HOST_DEVICE discard_iterator(size_t index=0)
Creates a new discard_iterator.
Definition: discard_iterator.hpp:83
ROCPRIM_HOST_DEVICE bool operator!=(const tuple< TTypes... > &lhs, const tuple< UTypes... > &rhs)
Not equal to operator for tuples.
Definition: tuple.hpp:838
std::ptrdiff_t difference_type
A type used for identify distance between iterators.
Definition: discard_iterator.hpp:75
ROCPRIM_HOST_DEVICE bool operator<=(const tuple< TTypes... > &lhs, const tuple< UTypes... > &rhs)
Less than or equal to operator for tuples.
Definition: tuple.hpp:898
ROCPRIM_HOST_DEVICE bool operator>(const tuple< TTypes... > &lhs, const tuple< UTypes... > &rhs)
Greater than operator for tuples.
Definition: tuple.hpp:881
ROCPRIM_HOST_DEVICE bool operator==(const tuple< TTypes... > &lhs, const tuple< UTypes... > &rhs)
Equal to operator for tuples.
Definition: tuple.hpp:819
ROCPRIM_HOST_DEVICE discard_iterator make_discard_iterator(size_t index=0)
make_discard_iterator creates a discard_iterator using optional index parameter index.
Definition: discard_iterator.hpp:232
A random-access iterator which discards values assigned to it upon dereference.
Definition: discard_iterator.hpp:43