gpt4 book ai didi

c++ - [[deprecated]] 在 Visual Studio 中导致错误而不是警告

转载 作者:行者123 更新时间:2023-11-30 04:43:31 25 4
gpt4 key购买 nike

根据 cppreference [[deprecated("message string")]] 我们应该可以使用该符号,但在 VS 中会导致错误。

例如,我不想在 UNICODE 构建中针对 ANSI 方法发出警告,反之亦然:

#ifdef UNICODE
[[deprecated("This method does not work well in UNICODE builds")]]
#endif // UNICODE
void f() {}

编译器不让我编译,但标准说属性应该允许使用但发出警告消息。

如何解决这个问题?顺便说一句。我的项目设置为最大程度地符合标准。

VS 违背标准的原因是什么,是否有更好的方法对上述情况发出警告?

最佳答案

派对来得太晚了,但今天早上我为此浪费了几个小时。

默认情况下,Visual Studio 和 sdl(安全开发生命周期)编译标志对待[[deprecated]] 作为错误。无论您是否同意,他们就是这样做的。

要解决此问题,请转到 Configuration Properties -> C/C++ -> Command Line 并添加 /sdl/w34996

/wX 部分表示警告的严重性,其余部分是您要报告为警告的错误。

我希望这能为人们节省一些时间。

关于c++ - [[deprecated]] 在 Visual Studio 中导致错误而不是警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58228990/

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