有没有办法告诉Visual Studio将警告视为警告而不是错误?

内森·皮尔森(Nathan Pierson)

在Visual Studio中,将警告C4996(使用不推荐使用的功能)视为错误,并且完全不编译使用不推荐使用的功能的代码。

有多种方法可以完全禁用C4996,或者对单个行,翻译单元或整个项目禁用C4996。但是,如果我希望它仍然发出警告,但允许编译而不将其视为错误怎么办?

#include <iostream>

[[deprecated]]
void deprecated_function()
{
    std::cout << "I function, but have been deprecated.\n";
}

int main() {
    deprecated_function();
}

这根本不编译。

#include <iostream>

[[deprecated]]
void deprecated_function()
{
    std::cout << "I function, but have been deprecated.\n";
}

int main() {
#pragma warning(suppress: 4996)
    deprecated_function();
}

这样可以编译,但完全不会发出警告。

是否可以告诉Visual Studio发出警告,但仍允许编译已弃用的函数?我正在考虑重构的目的,我想将一个函数标记为已弃用,标识其使用的所有位置,但是代码仍在每个中间阶段进行编译,在该阶段中,已替换了部分但不是全部使用的函数。

编辑:使用Visual Studio 2019社区16.8.4进行编译,警告级别设置为/ W3,“将警告作为错误处理”设置为“否”。如果完全发出此特定警告,则似乎将其视为错误。

内森·皮尔森(Nathan Pierson)

找到了可行的解决方案。原来,相关标志实际上是“ SDL检查”,而不是“将警告视为错误”。将其从翻转/sdl/sdl-会导致编译在仍然编译时发出警告。

编辑:如果我想保留所有SDL检查,除了将警告C4996视为错误之外,我可以将标志/sdl与标志结合使用,标志/w34996指定将4996其视为3级警告而不是错误。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

有没有办法告诉GHC将所有警告转储到文件中?

有没有办法忽略单个FindBugs警告?

有没有办法告诉交叉过滤器将数组的元素视为单独的记录,而不是将整个数组视为单个键?

有没有办法消除我收到的错误?

有没有办法告诉git只包括某些文件而不是忽略某些文件?

有没有办法备份Visual Studio Team Services项目?

php,有没有办法将所有通知/警告变成例外?

有没有办法警告指定的初始化程序错误?

在Visual Studio中有没有办法查看内存中的实际对象

有没有办法显示Visual Studio执行的Git命令?

除某些警告外,将所有警告视为错误

有没有办法在Visual Studio Code中折叠/折叠Rust文档注释?

有没有办法警告Chisel3中错误的时钟域交叉?

有没有办法在Microsoft Visual Studio 2019中获得Github选项卡

有没有办法在没有Visual Studio的情况下使用DirectXTex?

有没有办法使Premake使用Visual Studio Studio模板?

Visual Studio 2019 Publish将警告视为错误

有没有办法在C ++ Visual Studio 2019(社区版)中允许此操作?

有没有办法在Visual Studio 2017中查看所有书签的列表?

有没有办法告诉Visual Studio生成后事件,整个生成的输出可执行文件将来自子项目?

有没有办法告诉make将规则应用于与模式匹配的每个文件?

有没有办法让Postgres告诉您除了/附近还有什么语法错误?

有没有办法在Visual Studio 2015上使用Monogame 3.2

有没有办法在 Visual Studio C# 中更新图片(bmp)?

有没有办法可以在 Visual Studio IDE 中显示方法的注释参数?

有没有办法保证段错误?

有没有办法在 Visual Studio 中将测量单位从像素设置为点?

有没有办法在 Visual Studio 中刷新 nuget index.json 文件缓存

有没有办法渲染svg而不是矩形?