【发布时间】:2018-12-15 11:45:46
【问题描述】:
考虑这段代码:
#include <iostream>
int main () {
std::string str = "not default";
std::cout << str << std::endl;
return 0;
}
运行clang-tidy -checks=* string.cpp 给出以下结果:
7800 warnings generated.
/tmp/clang_tidy_bug/string.cpp:4:21: warning: calling a function that uses a default argument is disallowed [fuchsia-default-arguments]
std::string str = "not default";
^
/../lib64/gcc/x86_64-pc-linux-gnu/8.1.1/../../../../include/c++/8.1.1/bits/basic_string.h:509:39: note: default parameter was declared here
basic_string(const _CharT* __s, const _Alloc& __a = _Alloc())
^
Suppressed 7799 warnings (7799 in non-user code).
是否可以传递一些其他参数来消除此警告?我在这里并没有真正使用任何参数默认值。但是 std::string 的实现可以。
编辑:更改代码以简化测试用例。
【问题讨论】:
-
clang-tidy -checks=*,-fuchsia-default-arguments string.cpp工作吗? -
clang-tidy 的很多检查都是特定于某些组织的,所以我不建议打开所有检查。最好只打开你想要的检查
-
我可以忽略这些,但我想知道是否有针对这种常见情况的编码解决方案。我发布的这段代码非常基本。我只是好奇是否有人知道另一种方法。
标签: c++ clang-tidy