Advertencia C26479
No use std::move para devolver una variable local. (f.48)
Comentarios
La return
instrucción es el último uso de una variable local, por lo que el compilador usa la semántica de movimiento para devolverla siempre que sea posible.
Agregar un elemento std::move
es redundante en este escenario. Además, los s redundantes std::move
pueden impedir la elisión de copia.
Nombre de análisis de código: NO_MOVE_RET_ON_LOCALS
Ejemplo 1
S foo()
{
S local1{};
return std::move(local1); // Warning: C26479
}
Para corregir este problema, quite el elemento redundante std::move
:
S foo()
{
S local1{};
return local1; // No warning
}
Consulte también
F.48: No devolver std::move(local)
ES.56: escribir std::move()
solo cuando necesite mover explícitamente un objeto a otro ámbito