I must run a kernel that has excessively many parameters. So I decided to put them all in constant memory rather than passing them during kernel invocation. It happens that the struct I created contains const pointers (which are device pointers) like
float const* data;
When I try to declare a constant variable like
constant A a[ 1 ];
The compiler refuses with an error that I attempted to access a deleted constructor. While that makes perfect sense for normal C++ it is rather annoying in Cuda because I will use cudaMemcpyToSymbol to initialize the data. And even if I intended I could not use a constructor, deleted or not.
Has anybody an idea how to deal with that?
Thanks a lot!
PS I propose that constructor invocation be ignored for constant declarations.