OpenCL enqueueWriteImage 在 C++ 包装器中但在 C 函数中没有 const void* ptr

OpenCL enqueueWriteImage no const void* ptr in C++ wrapper but in C function

cl2.hpp 中,enqueueWriteImage 采用 void* ptr,但调用 C 函数 clEnqueueWriteImage,后者采用 const void* ptr。这是为什么?

cl_int enqueueWriteImage(
    const Image& image,
    cl_bool blocking,
    const array<size_type, 3>& origin,
    const array<size_type, 3>& region,
    size_type row_pitch,
    size_type slice_pitch,
    void* ptr,
    const vector<Event>* events = NULL,
    Event* event = NULL) const
{
    cl_event tmp;
    cl_int err = detail::errHandler(
        ::clEnqueueWriteImage(//... here the const void* ptr appears

这是故意的还是打字错误?因为它只调用一个接受 const void* ptr 的函数,所以它也可以是 const。

你是对的;这是 OpenCL C++ 绑定中的错误。还有一些其他 enqueueWrite* 函数也有同样的问题。我已经对 Khronos GitHub repository for these headers 进行了修复 - 它将包含在下一个版本中。