我发现自己编写了一个从 OpenCL 错误代码到人类可读字符串的非常简单的转换。大约 50 个不同的代码在头文件中定义,如下所示:
...
#define CL_INVALID_CONTEXT -34
#define CL_INVALID_QUEUE_PROPERTIES -35
#define CL_INVALID_COMMAND_QUEUE -36
#define CL_INVALID_HOST_PTR -37
...
我使用专家复制/粘贴将所有这些放在一个巨大的开关/案例中:
...
case CL_INVALID_CONTEXT:
return "CL_INVALID_CONTEXT";
case CL_INVALID_QUEUE_PROPERTIES:
return "CL_INVALID_QUEUE_PROPERTIES";
case CL_INVALID_COMMAND_QUEUE:
return "CL_INVALID_COMMAND_QUEUE";
case CL_INVALID_HOST_PTR:
return "CL_INVALID_HOST_PTR";
...
因为我最近开始使用 Vim,所以我认为可能有一种方法可以使用 Linux 命令工具和 Vim 以更有效的方式做到这一点。这里有一个类似的帖子,有人声称用 Emacs 完成了它。关于如何避免下次在类似任务上浪费 15 分钟的任何想法?
(我知道oclErrorSting()可能存在,但为了一般性,我们忽略它!)