弃用 C++ 代码并将警告视为错误的最佳实践?

use*_*113 5 c++ deprecated deprecation-warning

我们有一个大型 C++ 项目,启用错误时会发出警告。我们想弃用一些旧的 API,自然我们的第一个想法就是转向[[deprecated]]语言功能。然而,这会触发-Wdeprecated-declarations警告,该警告会变成错误并使构建失败。

现在,我们知道我们可以通过 禁用该特定警告的错误-Wno-error=deprecated-declarations。但构建日志仍然充满了编译器警告,使得发现真正的编译器错误变得更加困难。

那么我想知道在现实世界的大型项目中,人们是否有更好的解决方案来处理实践中的 C++ 弃用问题?

nic*_*ick 3

好吧,鱼和熊掌不可兼得:如果您不想使用已弃用的函数引发错误(这可能很好),但又不想看到警告 - 为什么首先要弃用它们呢?

您可以按数量抑制单个警告(请参阅此处的 VC++ 解决方案:/sf/answers/501157471/),但正确的方法实际上只是摆脱已弃用的函数调用并更新 API。