警告 C26479
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 - std::move(local)
ES.56 を返さない - オブジェクトを別のスコープに明示的に移動する必要がある場合にのみ std::move()
を書き込む