Partager via


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::movepeuvent 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