C26405 DONT_ASSIGN_TO_VALIDC26405 DONT_ASSIGN_TO_VALID

Si un pointeur de propriétaire est déjà pointe vers une mémoire tampon de mémoire valide, il ne doit pas être affectée à une autre valeur sans le libérer sa ressource actuelle tout d’abord.If an owner pointer already points to a valid memory buffer, it must not be assigned to another value without releasing its current resource first. Cette attribution peut entraîner une fuite de ressources même si l’adresse de la ressource est copié dans certains pointeur brut (étant donné que les pointeurs bruts ne doivent pas libérer les ressources).Such assignment may lead to a resource leak even if the resource address is copied into some raw pointer (because raw pointers shouldn’t release resources).

Exemple 1 : Remplacement d’un propriétaire dans une boucleExample 1: Overwriting an owner in a loop

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