Uyarı C26479

Yerel değişken döndürmek için std::move kullanmayın. (f.48)

Açıklamalar

return deyimi yerel değişkenin son kullanımıdır, bu nedenle derleyici mümkün olduğunda döndürmek için taşıma semantiğini kullanır. std::move Ekleme işlemi bu senaryoda yedeklidir. Ayrıca, yedekli std::moves kopya elision engelleyebilir.

Kod analizi adı: NO_MOVE_RET_ON_LOCALS

Örnek 1

S foo()
{
    S local1{};
    return std::move(local1); // Warning: C26479
}

Bu sorunu çözmek için yedekli std::moveöğesini kaldırın:

S foo()
{
    S local1{};
    return local1; // No warning
}

Ayrıca bkz.

F.48 - ES.56 döndürmeyin std::move(local)- Yalnızca bir nesneyi açıkça başka bir kapsama taşımanız gerektiğinde yazın std::move()