Aracılığıyla paylaş


Uyarı C26405

Geçerli durumda olabilecek bir owner<T> öğesine atama (r.3)

Açıklamalar

Sahip işaretçisi zaten geçerli bir bellek arabelleğine işaret ederse, önce geçerli kaynağı serbest bırakmadan başka bir değere atanmamalıdır. Bu tür atamalar, kaynak adresi bazı ham işaretçilere kopyalanmış olsa bile kaynak sızıntısına neden olabilir (çünkü ham işaretçiler kaynakları serbest bırakmamalıdır). Daha fazla bilgi için bkz . C++ Çekirdek Yönergeleri.

Kod analizi adı: DONT_ASSIGN_TO_VALID

Örnek 1

Döngüdeki bir sahibin üzerine yazma:

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