Avertissement C26479
N’utilisez pas std ::move pour retourner une variable locale. (f.48)
Notes
L’instruction return
est la dernière utilisation d’une variable locale, de sorte que le compilateur utilise la sémantique de déplacement pour le retourner dans la mesure du possible.
L’ajout d’un std::move
élément est redondant dans ce scénario. De plus, les éléments redondants std::move
peuvent empêcher l’élision de copie.
Nom de l’analyse du code : NO_MOVE_RET_ON_LOCALS
Exemple 1
S foo()
{
S local1{};
return std::move(local1); // Warning: C26479
}
Pour résoudre ce problème, supprimez le redondant std::move
:
S foo()
{
S local1{};
return local1; // No warning
}
Voir aussi
F.48 - Ne retournez std::move(local)
pas ES.56 - Écrire std::move()
uniquement lorsque vous devez déplacer explicitement un objet vers une autre étendue