如何删除#pragma region
上的GCC警告?
我添加了pragma region
以便轻松查看代码,但它会在#pragma region
上报告警告。
我正在使用Visual Studio 2010。
答案 0 :(得分:9)
gcc有这个警告标志:
<强> -Wunknown pragma的强> 遇到GCC无法理解的#pragma指令时发出警告。如果使用此命令行选项,则会出现警告 甚至可以在系统头文件中发出未知的pragma。这是 不 如果仅通过-Wall命令行选项启用警告的情况。
并且按照惯例你可以否定它,这意味着未知的pragma将不会被警告。也就是说,使用-Wno-unknown-pragmas
。
请注意,-Wno-unknown-pragmas
必须在打开此警告的任何命令行标志之后,例如-Wall
- 这也会禁用所有未知pragma上的警告,因此请小心使用。
答案 1 :(得分:7)
不要在GCC上使用它? :)
目前我能想到的最简单的解决方案是使用预处理器条件:
#ifndef __GNUC__
#pragma region
#endif
// Stuff...
#ifndef __GNUC__
#pragma endregion
#endif
看起来不太好或不易读,但会使代码在GCC上编译而没有警告。
答案 2 :(得分:4)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wunknown-pragmas"
... Code using Unknown pragmas ...
#pragma GCC diagnostic pop
答案 3 :(得分:3)
它似乎是一个MSVC特定的编译指示,所以你应该使用
#ifdef _MSC_VER
#pragma region
#endif
<code here>
#ifdef _MSC_VER
#pragma endregion
#endif