成员引用类型是一个指针;您是要使用'->'吗?

时间:2018-09-02 21:41:25

标签: c++

getAllFills

我正在尝试运行最后一行代码。我为其余的功能提供了相关的代码。 ii是因为我正在运行的代码在循环内。 getBuildInfo是来自位于此处的cl_program类的函数调用:

https://github.khronos.org/OpenCL-CLHPP/classcl_1_1_program.html

我知道我做错了什么。我想做的是在Program [ii] cl_program对象上调用getBuildInfo函数。编译器告诉我

GpuContext* ctx

struct GpuContext
{
/*Input vars*/
size_t deviceIdx;
size_t rawIntensity;
size_t workSize;
int stridedIndex;
int memChunk;
bool isNVIDIA = false;
int compMode;

/*Output vars*/
cl_device_id DeviceID;
cl_command_queue CommandQueues;
cl_mem InputBuffer;
cl_mem OutputBuffer;
cl_mem ExtraBuffers[6];
cl_program Program[2];
cl_kernel Kernels[2][8];
size_t freeMem;
int computeUnits;
std::string name;

uint32_t Nonce;

};

ctx->Program[ii].getBuildInfo((cl_int*)1);

但是从结构GpuContext中可以看到Program [ii](cl_program)不是指针。 member reference type 'cl_program' (aka '_cl_program *') is a pointer; did you mean to use '->'? ctx->Program[ii].getBuildInfo((cl_int*)1); ~~~~~~~~~~~~~~~~^ -> 是正确的吗?

1 个答案:

答案 0 :(得分:2)

cl_program只是_cl_program*的{​​{3}},其中_cl_program是一个结构。结果,Program[ii]实际上是一个指针,并且错误消息已得到充分证明。