【发布时间】:2011-09-27 06:35:22
【问题描述】:
我知道如何禁用所有未知的#pragma 警告。例如,在 How can I disable #pragma warnings? 中给出了答案。
有没有办法为一个特定的编译指示禁用“未知编译指示”警告?例如,如果我禁用 #pragma ugubugu 的警告,则以下代码:
#pragma ugubugu
#pragma untiunti
int main() {return 0;}
当编译时:
g++ pragma.cpp -Wall
clang++ pragma.cpp -Wall
应该产生一个警告:
warning: ignoring #pragma untiunti
例如,也许有一种简单的方法来注册一个什么都不做的自定义编译指示?
很高兴知道 Visual Studio 是否也有这样的选项,但这并不重要。
“但他最终为什么要玩自定义编译指示?”
我的源代码由两个编译器解析。在其中一个中,有一个特殊的#pragma 是另一个未知的。当然,我可以将#ifdef COMPILER_IDENTIFICATION_MACRO ... #endif 放在#pragma 的每个实例周围,但这会很麻烦。
【问题讨论】: