A self-dereferencing pointer. More...
#include <CudaScalar.hpp>
Public Types | |
using | ValueType = T |
Public Member Functions | |
IndirectScalar (const T *value) | |
operator T () const | |
A self-dereferencing pointer.
Some CUDA APIs like to encode scalars as pointers. It is, therefore, convenient to have this little struct that holds a pointer that we can pretend isn't a pointer at all (by allowing it to implicitly dereference itself). This, in turn, can be stuffed into sp::Scalar
by the specialisation engine when it fails to select a more efficient option (such as dereferencing the pointer on the host - if it's a host pointer).
The only sane application for this struct is when writing API glue for weird C APIs.