Aracılığıyla paylaş


Uyarı C26406

(r.3) öğesine owner<T> ham işaretçi atama

Bu uyarı, C++ Çekirdek Yönergeleri'nden R.3'e zorlar. Daha fazla bilgi için bkz . C++ Çekirdek Yönergeleri R.3.

Açıklamalar

Sahipler ayırmalardan veya diğer sahiplerden başlatılır. Bu uyarı, ham işaretçiden sahip işaretçisine değer atadığınızda oluşur. Ham işaretçiler sahiplik aktarımını garanti etmemektedir; özgün sahibi kaynağı tutabilir ve serbest bırakmaya çalışabilir. Sahipten ham işaretçiye değer atamanız normaldir. Ham işaretçiler kaynaklara erişmek için geçerli istemcilerdir, ancak bunları yönetmek için değildir.

Kod analizi adı: DONT_ASSIGN_RAW_TO_OWNER

Örnek

Nesnenin adresini kullanma:

Bu örnek, adresinin defaultSocket sahipliğini sahip işaretçisine socketatamayı dener:

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