警告 C26479
std::move を使用してローカル変数を返さないでください。 (f.48)
解説
ステートメントは return
ローカル変数の最後の使用であるため、コンパイラは可能な限り移動セマンティクスを使用してそれを返します。
このシナリオでは、a を std::move
追加することは冗長です。 さらに、冗長 std::move
な s は、コピーの省略を防ぐことができます。
コード分析名: 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 - ES.56 を返std::move(local)
さない - オブジェクトを別のスコープに明示的に移動する必要がある場合にのみ書き込むstd::move()