Sdílet prostřednictvím


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 socketvlastníkadefaultSocket:

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