OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
cub::ConstantInputIterator< ValueType, OffsetT > Class Template Reference

A random-access input generator for dereferencing a sequence of homogeneous values. More...

Detailed Description

template<typename ValueType, typename OffsetT = ptrdiff_t>
class cub::ConstantInputIterator< ValueType, OffsetT >

A random-access input generator for dereferencing a sequence of homogeneous values.

  • Read references to a ConstantInputIteratorTiterator always return the supplied constant of type ValueType.
  • Can be used with any data type.
  • Can be constructed, manipulated, dereferenced, and exchanged within and between host and device functions.
  • Compatible with Thrust API v1.7 or newer.
The code snippet below illustrates the use of ConstantInputIteratorTto dereference a sequence of homogeneous doubles.
#include <cub/cub.cuh> // or equivalently <cub/iterator/constant_input_iterator.cuh>
printf("%f\n", itr[0]); // 5.0
printf("%f\n", itr[1]); // 5.0
printf("%f\n", itr[2]); // 5.0
printf("%f\n", itr[50]); // 5.0
Template Parameters
ValueTypeThe value type of this iterator
OffsetTThe difference type of this iterator (Default: ptrdiff_t)

Definition at line 96 of file constant_input_iterator.cuh.

Public Types

typedef ConstantInputIterator self_type
 My own type.
typedef OffsetT difference_type
 Type to express the result of subtracting one iterator from another.
typedef ValueType value_type
 The type of the element the iterator can point to.
typedef ValueType * pointer
 The type of a pointer to an element the iterator can point to.
typedef ValueType reference
 The type of a reference to an element the iterator can point to.
typedef std::random_access_iterator_tag iterator_category
 The iterator category.

Public Member Functions

__host__ __device__ __forceinline__ ConstantInputIterator (ValueType val, OffsetT offset=0)
 Constructor. More...
__host__ __device__ __forceinline__ self_type operator++ (int)
 Postfix increment.
__host__ __device__ __forceinline__ self_type operator++ ()
 Prefix increment.
__host__ __device__ __forceinline__ reference operator * () const
template<typename Distance >
__host__ __device__ __forceinline__ self_type operator+ (Distance n) const
template<typename Distance >
__host__ __device__ __forceinline__ self_typeoperator+= (Distance n)
 Addition assignment.
template<typename Distance >
__host__ __device__ __forceinline__ self_type operator- (Distance n) const
template<typename Distance >
__host__ __device__ __forceinline__ self_typeoperator-= (Distance n)
 Subtraction assignment.
__host__ __device__ __forceinline__ difference_type operator- (self_type other) const
template<typename Distance >
__host__ __device__ __forceinline__ reference operator[] (Distance) const
 Array subscript.
__host__ __device__ __forceinline__ pointer operator-> ()
 Structure dereference.
__host__ __device__ __forceinline__ bool operator== (const self_type &rhs)
 Equal to.
__host__ __device__ __forceinline__ bool operator!= (const self_type &rhs)
 Not equal to.

Private Attributes

ValueType val
OffsetT offset


std::ostream & operator<< (std::ostream &os, const self_type &itr)
 ostream operator

Constructor & Destructor Documentation

◆ ConstantInputIterator()

template<typename ValueType, typename OffsetT = ptrdiff_t>
__host__ __device__ __forceinline__ cub::ConstantInputIterator< ValueType, OffsetT >::ConstantInputIterator ( ValueType  val,
OffsetT  offset = 0 


valStarting value for the iterator instance to report
offsetBase offset

Definition at line 130 of file constant_input_iterator.cuh.

The documentation for this class was generated from the following file: