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;