当我阅读leela-zero源代码时,我不明白将预处理器放入std :: string中。在我使用Windows 10,Visual Studio 2019进行的实验中,代码不起作用。
零零:https://github.com/leela-zero/leela-zero/blob/next/src/OpenCL.cpp69〜71line
源代码:
const std::string sourceCode_common =
#include <stdio.h>
;
错误代码:
E0029 expected an expression
我想你的意思是这样的:
static const std::string sourceCode_convolve1 =
#include "kernels/convolve1.opencl"
;
这就是#include
的工作方式。它从字面上包括文件的内容。如果此文件恰好是有效的字符串文字,则可以正常工作(例如,该文件可能是类似"content...."
的文件。