如何在 C++ 编译时读取文件?
How to read a file at compile time in C++?
我一直在寻找一种在编译时将文件存储为 const char*
的方法。
我试过这样做:
#define STRINGIFY(...) #__VA_ARGS__ // va args deals with commas
#define INCLUDE(path) #include path // error: '#' is not followed by a macro parameter
constexpr const char* source = STRINGIFY(INCLUDE("source.txt"));
但不幸的是,您不能将 include 指令放在宏扩展中。有什么办法可以解决这个问题吗?或任何其他在编译时获取文件内容的方法?
执行此操作的经典方法是编写读取数据文件并生成 .H 文件的 awk 或 perl 脚本
我一直在寻找一种在编译时将文件存储为 const char*
的方法。
我试过这样做:
#define STRINGIFY(...) #__VA_ARGS__ // va args deals with commas
#define INCLUDE(path) #include path // error: '#' is not followed by a macro parameter
constexpr const char* source = STRINGIFY(INCLUDE("source.txt"));
但不幸的是,您不能将 include 指令放在宏扩展中。有什么办法可以解决这个问题吗?或任何其他在编译时获取文件内容的方法?
执行此操作的经典方法是编写读取数据文件并生成 .H 文件的 awk 或 perl 脚本