Bagikan melalui


Peringatan C26406

Jangan menetapkan pointer mentah ke owner<T> (r.3)

Peringatan ini memberlakukan R.3 dari Pedoman Inti C++. Untuk informasi selengkapnya, lihat C++ Pedoman Inti R.3.

Keterangan

Pemilik diinisialisasi dari alokasi atau dari pemilik lain. Peringatan ini terjadi saat Anda menetapkan nilai dari pointer mentah ke penunjuk pemilik. Pointer mentah tidak menjamin transfer kepemilikan; pemilik asli mungkin masih menyimpan sumber daya dan mencoba merilisnya. Tidak apa-apa untuk menetapkan nilai dari pemilik ke pointer mentah. Pointer mentah adalah klien yang valid untuk mengakses sumber daya, tetapi tidak untuk mengelolanya.

Nama analisis kode: DONT_ASSIGN_RAW_TO_OWNER

Contoh

Menggunakan alamat objek:

Sampel ini mencoba menetapkan kepemilikan alamat defaultSocket ke penunjuk socketpemilik :

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