A more C++-ish wrapper around OpenCL