led*_*kol 20 c++ macros include
我正在尝试在宏中生成包含文件名.这在C++中应该是合法的:
#define INCLUDE_FILE "module_impl_win.hpp"
#include INCLUDE_FILE
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但是一旦我尝试生成文件名就很难编译
#define INCLUDE_FILE(M) M##"_impl_win.hpp"
#include INCLUDE_FILE("module")
Run Code Online (Sandbox Code Playgroud)
实际上它给了我MSVC2010的警告
警告C4067:预处理器指令后面的意外令牌 - 期望一个newlin
但它不包括该文件.
问题是什么?我怎么能摆脱它?
小智 19
我是用助手引用宏来做的.这样的东西会给你你想要的东西:
#define QUOTEME(M) #M
#define INCLUDE_FILE(M) QUOTEME(M##_impl_win.hpp)
#include INCLUDE_FILE(module)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6883 次 |
| 最近记录: |