Condividi tramite


Avviso C26406

Non assegnare un puntatore non elaborato a un oggetto owner<T> (r.3)

Questo avviso applica R.3 dalle linee guida di base di C++. Per altre informazioni, vedere Linee guida di base di C++R.3.

Osservazioni:

I proprietari vengono inizializzati dalle allocazioni o da altri proprietari. Questo avviso si verifica quando si assegna un valore da un puntatore non elaborato a un puntatore proprietario. I puntatori non elaborati non garantiscono il trasferimento della proprietà; il proprietario originale può comunque contenere la risorsa e tentare di rilasciarla. È possibile assegnare un valore da un proprietario a un puntatore non elaborato. I puntatori non elaborati sono client validi per accedere alle risorse, ma non per gestirli.

Nome dell'analisi del codice: DONT_ASSIGN_RAW_TO_OWNER

Esempio

Utilizzo dell'indirizzo dell'oggetto:

Questo esempio tenta di assegnare la proprietà dell'indirizzo di defaultSocket al puntatore socketproprietario :

gsl::owner<Socket*> socket = defaultSocket ? &defaultSocket : new Socket(); // C26406