bugprone-argument-comment

检查参数注释是否与参数名称匹配。

该检查理解放置在参数之前的 /*parameter_name=*/ 格式的参数注释。

void f(bool foo);

...

f(/*bar=*/true);
// warning: argument name 'bar' in comment does not match parameter name 'foo'

该检查尝试检测拼写错误并为其建议自动修复。

选项

StrictMode

当为 false(默认值)时,检查将忽略比较名称时的前导和尾随下划线以及大小写 - 否则它们会被考虑在内。

IgnoreSingleArgument

当为 true 时,检查将忽略单个参数。

CommentBoolLiterals

当为 true 时,检查将在布尔文字参数之前添加 /*ParameterName=*/ 格式的参数注释。

之前

void foo(bool TurnKey, bool PressButton);

foo(true, false);

之后

void foo(bool TurnKey, bool PressButton);

foo(/*TurnKey=*/true, /*PressButton=*/false);
CommentIntegerLiterals

当为 true 时,检查将在整数文字参数之前添加 /*ParameterName=*/ 格式的参数注释。

之前

void foo(int MeaningOfLife);

foo(42);

之后

void foo(int MeaningOfLife);

foo(/*MeaningOfLife=*/42);
CommentFloatLiterals

当为 true 时,检查将在浮点数/双精度文字参数之前添加 /*ParameterName=*/ 格式的参数注释。

之前

void foo(float Pi);

foo(3.14159);

之后

void foo(float Pi);

foo(/*Pi=*/3.14159);
CommentStringLiterals

当为 true 时,检查将在字符串文字参数之前添加 /*ParameterName=*/ 格式的参数注释。

之前

void foo(const char *String);
void foo(const wchar_t *WideString);

foo("Hello World");
foo(L"Hello World");

之后

void foo(const char *String);
void foo(const wchar_t *WideString);

foo(/*String=*/"Hello World");
foo(/*WideString=*/L"Hello World");
CommentCharacterLiterals

当为 true 时,检查将在字符文字参数之前添加 /*ParameterName=*/ 格式的参数注释。

之前

void foo(char *Character);

foo('A');

之后

void foo(char *Character);

foo(/*Character=*/'A');
CommentUserDefinedLiterals

当为 true 时,检查将在用户定义的文字参数之前添加 /*ParameterName=*/ 格式的参数注释。

之前

void foo(double Distance);

double operator"" _km(long double);

foo(402.0_km);

之后

void foo(double Distance);

double operator"" _km(long double);

foo(/*Distance=*/402.0_km);
CommentNullPtrs

当为 true 时,检查将在 nullptr 文字参数之前添加 /*ParameterName=*/ 格式的参数注释。

之前

void foo(A* Value);

foo(nullptr);

之后

void foo(A* Value);

foo(/*Value=*/nullptr);