std::move を使用してローカル変数を返さないでください。 (f.48)
解説
returnステートメントはローカル変数の最後の使用であるため、コンパイラは可能な限り移動セマンティクスを使用してそれを返します。
このシナリオでは、 std::move の追加は冗長です。 さらに、冗長な std::moveでは、コピーの省略を防ぐことができます。
コード分析名: NO_MOVE_RET_ON_LOCALS
例 1
S foo()
{
S local1{};
return std::move(local1); // Warning: C26479
}
この問題を解決するには、冗長な std::moveを削除します。
S foo()
{
S local1{};
return local1; // No warning
}
関連項目
F.48: しない return std::move(local)
ES.56: オブジェクトを別のスコープに明示的に移動する必要がある場合にのみ、 std::move() を書き込む