39#include "../util_namespace.cuh" 
   40#include "../util_macro.cuh" 
   42#if (THRUST_VERSION >= 100700) 
   44    #include <thrust/iterator/iterator_facade.h> 
   45    #include <thrust/iterator/iterator_traits.h> 
   65template <
typename OffsetT = ptrdiff_t>
 
   77#if (THRUST_VERSION >= 100700) 
   79    typedef typename thrust::detail::iterator_facade_category<
 
   80        thrust::any_system_tag,
 
   81        thrust::random_access_traversal_tag,
 
   93#if defined(_WIN32) || !defined(_WIN64) 
  130    template <
typename Distance>
 
  138    template <
typename Distance>
 
  146    template <
typename Distance>
 
  154    template <
typename Distance>
 
  164        return offset - other.offset;
 
  168    template <
typename Distance>
 
  184        offset = other.offset;
 
  189    __host__ __device__ __forceinline__ 
void operator=(T 
const&)
 
  193    __host__ __device__ __forceinline__ 
operator void*() 
const { 
return NULL; }
 
  198        return (offset == rhs.offset);
 
  204        return (offset != rhs.offset);
 
  210        os << 
"[" << itr.offset << 
"]";
 
__host__ __device__ __forceinline__ bool operator==(const self_type &rhs)
Equal to.
 
__host__ __device__ __forceinline__ difference_type operator-(self_type other) const
Distance.
 
__host__ __device__ __forceinline__ void operator=(T const &)
Assignment to anything else (no-op)
 
__host__ __device__ __forceinline__ self_type & operator*()
Indirection.
 
__host__ __device__ __forceinline__ self_type operator++(int)
Postfix increment.
 
void reference
The type of a reference to an element the iterator can point to.
 
OffsetT difference_type
Type to express the result of subtracting one iterator from another.
 
__host__ __device__ __forceinline__ self_type & operator-=(Distance n)
Subtraction assignment.
 
__host__ __device__ __forceinline__ self_type operator++()
Prefix increment.
 
DiscardOutputIterator self_type
My own type.
 
__host__ __device__ __forceinline__ self_type & operator+=(Distance n)
Addition assignment.
 
friend std::ostream & operator<<(std::ostream &os, const self_type &itr)
ostream operator
 
void value_type
The type of the element the iterator can point to.
 
void pointer
The type of a pointer to an element the iterator can point to.
 
std::random_access_iterator_tag iterator_category
The iterator category.
 
__host__ __device__ __forceinline__ DiscardOutputIterator(OffsetT offset=0)
Constructor.
 
__host__ __device__ __forceinline__ bool operator!=(const self_type &rhs)
Not equal to.
 
__host__ __device__ __forceinline__ self_type operator+(Distance n) const
Addition.
 
__host__ __device__ __forceinline__ pointer operator->()
Structure dereference.
 
__host__ __device__ __forceinline__ self_type operator-(Distance n) const
Subtraction.
 
__host__ __device__ __forceinline__ self_type & operator[](Distance n)
Array subscript.
 
__host__ __device__ __forceinline__ void operator=(self_type const &other)
Assignment to self (no-op)
 
#define CUB_MAX(a, b)
Select maximum(a, b)
 
Optional outer namespace(s)
 
OffsetT OffsetT
[in] Total number of input data items