首页 > 解决方案 > 将预处理器放入 std::string 是什么意思?

问题描述

当我阅读leela-zero源代码时,我不明白将预处理器放入std::string. 在我对Windows 10、Visual Studio 2019的实验中,代码不起作用。

leela-零码69~71line

源代码:

const std::string sourceCode_common =
#include <stdio.h>
;

错误代码:

E0029 expected an expression

标签: c++preprocessor

解决方案


我猜你的意思是这样的:

static const std::string sourceCode_convolve1 =
    #include "kernels/convolve1.opencl"
;

就是这样#include工作的。它实际上包括(复制粘贴)文件的内容。如果这个文件碰巧是一个有效的字符串字面量,这可以工作(例如"content....",只要它的内容是有效的字符串字面量,文件就可以是类似的东西)。


推荐阅读