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::move
s 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()