Improved OpenCL C++ wrapper