考虑这段代码:
#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 的实现确实如此。
编辑:更改代码以简化测试用例。