警告 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()