Sdílet prostřednictvím


Upozornění C26405

Nepřiřazujte k tomu owner<T> , který může být v platném stavu (r.3).

Poznámky

Pokud ukazatel vlastníka již odkazuje na platnou vyrovnávací paměť, nesmí být přiřazen k jiné hodnotě bez uvolnění aktuálního prostředku nejprve. Takové přiřazení může vést k úniku prostředků i v případě, že se adresa prostředku zkopíruje do nějakého nezpracovaného ukazatele (protože nezpracované ukazatele by neměly uvolnit prostředky). Další informace najdete v pokynech pro C++ Core Guidelines.

Název analýzy kódu: DONT_ASSIGN_TO_VALID

Příklad 1

Přepsání vlastníka ve smyčce:

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