c++ - 在 Visual Studio 中暂时禁用包含的编译警告

标签 c++ visual-studio-2017 pragma chaiscript

我正在运行 Visual Studio 2017。我正在尝试向我的项目添加一种名为 ChaiScript 的脚本语言,但是当我打开/Wall 时它会生成很多警告,并且我还将警告视为错误 (我更喜欢这样保持这种状态)。

所以我想我会尝试在包含 ChaiScript 头文件时暂时禁用所有警告(只需要包含 1 个文件)。起初我这样做...

#pragma warning( disable : 4061 )
#pragma warning( disable : 4068 )
#pragma warning( disable : 4191 )
#pragma warning( disable : 4355 )
#pragma warning( disable : 4365 )
#pragma warning( disable : 4371 )
#pragma warning( disable : 4464 )
#pragma warning( disable : 4514 )
#pragma warning( disable : 4571 )
#pragma warning( disable : 4623 )
#pragma warning( disable : 4625 )
#pragma warning( disable : 4626 )
#pragma warning( disable : 4668 )
#pragma warning( disable : 4710 )
#pragma warning( disable : 4774 )
#pragma warning( disable : 4820 )
#pragma warning( disable : 5026 )
#pragma warning( disable : 5027 )
#include <chaiscript\chaiscript.hpp>

这行得通,我可以编译...但是,我想在其余的编译过程中重新启用这些警告...所以我把它变成了这个...

#pragma warning( push )
#pragma warning( disable : 4061 )
#pragma warning( disable : 4068 )
#pragma warning( disable : 4191 )
#pragma warning( disable : 4355 )
#pragma warning( disable : 4365 )
#pragma warning( disable : 4371 )
#pragma warning( disable : 4464 )
#pragma warning( disable : 4514 )
#pragma warning( disable : 4571 )
#pragma warning( disable : 4623 )
#pragma warning( disable : 4625 )
#pragma warning( disable : 4626 )
#pragma warning( disable : 4668 )
#pragma warning( disable : 4710 )
#pragma warning( disable : 4774 )
#pragma warning( disable : 4820 )
#pragma warning( disable : 5026 )
#pragma warning( disable : 5027 )
#include <chaiscript\chaiscript.hpp>
#pragma warning( pop )

现在我认为这会成功,因此它会在没有警告的情况下编译 header ,然后返回检查这些警告……但似乎在我这样做之后……我仍然收到 4 个 C4710 警告。 .. 我做错了什么吗?

https://i.imgur.com/RuxboQC.png

最佳答案

在所有禁用之前添加#pragma warning(push, 3),在包含之后添加#pragma warning(pop)。

关于c++ - 在 Visual Studio 中暂时禁用包含的编译警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47540974/

相关文章:

c++ - 使用 Pragma 以字节为单位适应套接字的大小

c++ - 如何使用 openMP 使这段代码线程安全?

C++ 在 std::vector 中搜索

c++ - 程序打开错误

c++ - 如何使用 C++ 在后台跟踪剪贴板更改

asp.net-mvc - 我必须附加到什么进程才能使用 IIS Express 配置文件在 MVC 6 Web 应用程序中进行调试?

c++ - 如何将网络数据反序列化为不同的原语?

visual-studio - Resharper 安装未检测到 VS 2017

.net - 无法在核心 2.0 项目中引用 .netstandard 2.0 项目

haskell - 在 OPTIONS 杂注中设置导入路径