Avertissement C26405

Ne pas affecter à un owner<T> état valide (r.3)

Notes

Si un pointeur propriétaire pointe déjà vers une mémoire tampon valide, il ne doit pas être affecté à une autre valeur sans libérer d’abord sa ressource actuelle. Cette affectation peut entraîner une fuite de ressources même si l’adresse de ressource est copiée dans un pointeur brut (car les pointeurs bruts ne doivent pas libérer les ressources). Pour plus d’informations, consultez les instructions de base C++.

Nom de l’analyse du code : DONT_ASSIGN_TO_VALID

Exemple 1

Remplacement d’un propriétaire dans une boucle :

gsl::owner<Shape*> shape = nullptr;
while (shape = NextShape()) // C26405
    Process(shape) ? delete shape : 0;