c++ - 将预处理器放入 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
解决方案
我猜你的意思是这样的:
static const std::string sourceCode_convolve1 =
#include "kernels/convolve1.opencl"
;
就是这样#include
工作的。它实际上包括(复制粘贴)文件的内容。如果这个文件碰巧是一个有效的字符串字面量,这可以工作(例如"content...."
,只要它的内容是有效的字符串字面量,文件就可以是类似的东西)。
推荐阅读
- bash - How to simplify my YAML CircleCI configuration for better readability?
- email - Error when using Redemption.SafeMailItem - OLE error 8004010E(MAPI_E NOT ENOUGH RESOURCES)
- tensorflow - 如何在 Tensorflow 2.0 中将 imgaug 增强应用于 tf.dataDataset
- c# - 将 Radio 值传递给控制器
- c++ - 有没有办法强制 gradle 一次只为 1 个项目编译 c++ 代码(并且只编译它)?
- java - 用于 Protobuf 编译器的 gRPC Java Codegen 插件
- python - Pandas:如何将字符串转换为 DataFrame
- android - 视频卡住,有时在视频视图中显示“无法播放视频”
- node.js - 连接到 nodejs 服务器时出错找不到 node-restful
- javascript - 我是否以错误的方式使用 reduce 方法?