在MSVC中,我在标题中有这个:
#define STR(x) #x
#define STR2(x) STR(x)
#define NOTE(text) message (__FILE__ "(" STR2(__LINE__) ") : -NOTE- " #text)
#define noteMacro(text) message (__FILE__ "(" STR2(__LINE__) ") : " STR2(text))
Run Code Online (Sandbox Code Playgroud)
而我呢
#pragma NOTE(my warning here)
Run Code Online (Sandbox Code Playgroud)
GCC有:
#warning(my warning here)
Run Code Online (Sandbox Code Playgroud)
然而,MSVC(2003)在看到#warning并发出"致命错误C1021:无效的预处理器命令'警告' 时抛出一个拟合"
我该怎么办?有没有办法让GCC认出MSVC警告或MSVC不会在GCC警告上抛出错误?我可以做些什么对两者都有效吗?我可以让GCC警告我关于未知的pragma,但这不是最理想的解决方案.