当警告为错误时使用 [[已弃用]] 属性 (-Werror)
Using [[deprecated]] attribute when warnings are errors (-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
问题是已弃用的警告被提升(降级?(为错误,并且构建失败。
显然,使用#pragma
来压制警告完全违背了重点。有没有办法告诉 g++ 发出警告,同时排除特定的警告,使其不被视为错误?
你需要添加
-Wno-error=deprecated-declarations
告诉 GCC 保留deprecated-declarations
作为警告,而不是使其成为错误。
您可以添加其他
-Wno-error=name_of_warning
如果您有其他警告,不希望也被视为错误。
使用 GCC(还有 Clang(,您可以禁用特定警告的错误。
使用-Wno-error=
后跟警告名称(与警告或错误一起显示(将禁用该特定项的错误。
对于您的[[deprecated]]
,请使用选项-Wno-error=deprecated-declaration
,这些将再次成为警告而不是错误。
相关文章:
- 警告处理为错误这里有什么问题
- 如何导出包含具有"std::unique_ptr"值的"std::map"属性的
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- C++概念:如何使用'concept'检查模板化结构的属性?
- cppcheck在const std::string[]上引发警告
- 警告:忽略模板参数上的属性..在 std::unique_ptr (-wignore 属性)的声明中
- 为什么 C++20 中的 [[可能]] 属性在这里引发警告?
- 当警告为错误时使用 [[已弃用]] 属性 (-Werror)
- [[maybe_unused]] 在成员变量上,GCC 警告(不正确?)该属性被忽略
- 如何将项目属性设置为删除警告MSB8004:中间目录不会以落后的斜线结束
- gtk_text_buffer_create_tag创建警告:'GtkTextTag'没有名为 'u0004' 的属性
- 警告:"assume_aligned"属性指令被忽略
- GCC警告的含义:忽略模板参数上的属性(-Wignored属性)
- 在可疑的情况下发出叮当警告:函数'foo'可以用属性"noreturn"声明吗?
- 警告:忽略"int scanf(const char*, ...)"的返回值,使用属性 warn_unused_result [-Wunused-result] 声明
- 当返回类型为类时,带有尾随返回类型的 GCC 属性警告
- 来自 gcc init_priority属性的抑制警告
- c++中的未知属性“external_c”警告
- 使用importlib属性时发出MIDL2015警告
- 在委托警告中,Treeview模型属性为空