将文件包含为原始字符串文字

时间:2012-10-17 14:40:41

标签: c++ c++11 include string-literals

  

可能重复:
  C/C++, can you #include a file into a string literal?

是否可以使用C ++ 11原始字符串文字在编译时将文本文件的全部内容作为字符串获取?

基本上,我希望能够嵌入GLSL着色器源文件而无需修改它们。

建议采用以下方法here

const std::string shaderSource = R"glsl(
  #include "my_shader.glsl"
  )glsl";

这很hacky,但对我的应用程序来说没问题。但是,由于在包含文件之前评估原始字符串文字,这似乎不起作用。

我想我可以将'R"glsl('')glsl"'部分移动到每个着色器源文件的开头和结尾,然后执行此操作:

const std::string shaderSource =
  #include "my_shader.glsl"
  ;

但就像我说的那样,我真的不想修改着色器源文件,因为这会使相同文件的运行时加载变得复杂,从而使它们的可移植性降低。

0 个答案:

没有答案