gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 10:03:58 25 4
gpt4 key购买 nike

在 Visual Studio 中,warning 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 Community 16.8.4 进行编译,警告级别设置为/W3,“将警告视为错误”设置为“否”。如果发出此特定警告,它似乎被视为错误。

最佳答案

找到了一个有效的解决方案。事实证明,相关标志实际上是“SDL checks”,而不是“将警告视为错误”。从 /sdl 翻过来至 /sdl-导致编译在编译时发出警告。
编辑:如果我想保留所有 SDL 检查,除了将警告 C4996 视为错误,我可以使用标志 /sdl结合国旗/w34996 , 指定 4996被视为 3 级警告而不是错误。

关于c++ - 有没有办法告诉 Visual Studio 将警告视为警告,而不是错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66004028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com