OpenCL C++ wrapper