c++ - 当警告是错误时使用 [[deprecated]] 属性 (-Werror)
问题描述
我正在迁移到 C++14 并热衷于采用它的[[deprecated]]
功能,例如
#include <string>
#include <iostream>
[[deprecated]]
int f() { return 42; }
int main()
{
std::cout << f() << std::endl;
}
编译
g++ example.cpp -std=c++14 -Werror
问题是不推荐使用的警告被提升(降级?)为错误并且构建失败。
显然,使用 a#pragma
来使警告静音完全违背了这一点。有没有办法告诉 g++ 发出警告但排除特定的警告被视为错误?
解决方案
您需要添加
-Wno-error=deprecated-declarations
告诉 gcc 保留deprecated-declarations
作为警告而不是使其成为错误。
您可以添加额外的
-Wno-error=name_of_warning
如果您有其他警告也不想被视为错误。
推荐阅读
- sql - 基于单词匹配频率的 SQL 最佳匹配
- mysql - 这是在 mysql 触发器中为变量设置值的正确方法吗?
- optimization - Neo4j 查询即兴创作
- .net - .NET Core Api 身份验证使用身份服务器 4
- java - Android Studio 在按钮文本中显示长
- python - 如何使用 Python 分发 Electron 应用程序
- sql-server - 使用 Access 中文本框中的值访问 sql server 中的存储过程
- javascript - Gatsby - 命令失败,退出代码为 1:npm install
- wpf - 使用 XAML 中的转换器通过绑定动态设置 BitmapImage
- sql - sql:获取一个单列表,从另一个表按列排序