performance-move-const-arg¶
该检查会发出警告
如果使用常量参数调用
std::move()
,如果使用平凡可复制类型的参数调用
std::move()
,如果
std::move()
的结果作为常量引用参数传递。
在这三种情况下,该检查将建议一个修复方案,即删除 std::move()
。
以下是三种情况的示例
const string s;
return std::move(s); // Warning: std::move of the const variable has no effect
int x;
return std::move(x); // Warning: std::move of the variable of a trivially-copyable type has no effect
void f(const string &s);
string s;
f(std::move(s)); // Warning: passing result of std::move as a const reference argument; no move will actually happen
选项¶
- CheckTriviallyCopyableMove¶
如果为 true,则启用对没有移动构造函数的平凡可复制类型进行检测。默认值为 true。
- CheckMoveToConstRef¶
如果为 true,则启用对作为常量引用参数传递的 std::move() 进行检测。默认值为 true。