Upozornění C26406
Nepřiřazovat nezpracovaný ukazatel k objektu
owner<T>
(r.3)
Toto upozornění vynucuje R.3 z pokynů pro C++ Core Guidelines. Další informace najdete v tématu C++ Core Guidelines R.3.
Poznámky
Vlastníci se inicializují z přidělení nebo jiných vlastníků. K tomuto upozornění dochází, když přiřadíte hodnotu z nezpracovaného ukazatele na ukazatel vlastníka. Nezpracované ukazatele nezaručují převod vlastnictví; původní vlastník může prostředek stále uchovávat a pokoušet se ho uvolnit. Je v pořádku přiřadit hodnotu od vlastníka k nezpracovaným ukazateli. Nezpracované ukazatele jsou platnými klienty pro přístup k prostředkům, ale ne ke správě.
Název analýzy kódu: DONT_ASSIGN_RAW_TO_OWNER
Příklad
Pomocí adresy objektu:
Tato ukázka se pokusí přiřadit vlastnictví adresy ukazatele socket
vlastníkadefaultSocket
:
gsl::owner<Socket*> socket = defaultSocket ? &defaultSocket : new Socket(); // C26406