Fermat
Public Types | Public Methods | Public Members | List of all members
cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD > Struct Template Reference

Detailed description

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
struct cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >

Wrapper class to create a cub::ThreadStore iterator out of a raw pointer

#include <pointers.h>

Public Types

typedef T value_type
 
typedef store_reference< value_type, STORE_MOD, LOAD_MOD > reference
 
typedef value_type const_reference
 
typedef value_type * pointer
 
typedef std::iterator_traits< T * >::difference_type difference_type
 
typedef std::random_access_iterator_tag iterator_category
 

Public Methods

CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer ()
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer (T *base)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer (const store_pointer &it)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE reference operator[] (const uint32 i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE reference operator* ()
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer< T, STORE_MOD, LOAD_MOD > & operator++ ()
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer< T, STORE_MOD, LOAD_MOD > operator++ (int i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer< T, STORE_MOD, LOAD_MOD > & operator-- ()
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer< T, STORE_MOD, LOAD_MOD > operator-- (int i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer< T, STORE_MOD, LOAD_MOD > operator+ (const difference_type i) const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer< T, STORE_MOD, LOAD_MOD > operator- (const difference_type i) const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer< T, STORE_MOD, LOAD_MOD > & operator+= (const difference_type i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer< T, STORE_MOD, LOAD_MOD > & operator-= (const difference_type i)
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE difference_type operator- (const store_pointer< T, STORE_MOD, LOAD_MOD > it) const
 
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointeroperator= (const store_pointer< T, STORE_MOD, LOAD_MOD > &it)
 

Public Members

T * m_base
 

Constructor & Destructor Documentation

◆ store_pointer() [1/3]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::store_pointer ( )
inline

constructor

◆ store_pointer() [2/3]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::store_pointer ( T *  base)
inline

constructor

◆ store_pointer() [3/3]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::store_pointer ( const store_pointer< T, STORE_MOD, LOAD_MOD > &  it)
inline

copy constructor

Member Function Documentation

◆ operator*()

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE reference cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator* ( )
inline

dereference operator

◆ operator+()

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer<T,STORE_MOD,LOAD_MOD> cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator+ ( const difference_type  i) const
inline

addition

◆ operator++() [1/2]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer<T,STORE_MOD,LOAD_MOD>& cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator++ ( )
inline

pre-increment

◆ operator++() [2/2]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer<T,STORE_MOD,LOAD_MOD> cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator++ ( int  i)
inline

post-increment

◆ operator+=()

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer<T,STORE_MOD,LOAD_MOD>& cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator+= ( const difference_type  i)
inline

addition

◆ operator-() [1/2]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer<T,STORE_MOD,LOAD_MOD> cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator- ( const difference_type  i) const
inline

subtraction

◆ operator-() [2/2]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE difference_type cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator- ( const store_pointer< T, STORE_MOD, LOAD_MOD >  it) const
inline

iterator subtraction

◆ operator--() [1/2]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer<T,STORE_MOD,LOAD_MOD>& cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator-- ( )
inline

pre-decrement

◆ operator--() [2/2]

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer<T,STORE_MOD,LOAD_MOD> cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator-- ( int  i)
inline

post-decrement

◆ operator-=()

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer<T,STORE_MOD,LOAD_MOD>& cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator-= ( const difference_type  i)
inline

subtraction

◆ operator=()

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE store_pointer& cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator= ( const store_pointer< T, STORE_MOD, LOAD_MOD > &  it)
inline

assignment

◆ operator[]()

template<typename T, CacheStoreModifier STORE_MOD, CacheLoadModifier LOAD_MOD = LOAD_DEFAULT>
CUGAR_FORCEINLINE CUGAR_HOST_DEVICE reference cugar::cuda::store_pointer< T, STORE_MOD, LOAD_MOD >::operator[] ( const uint32  i)
inline

const indexing operator


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