Warnung C26406

Weisen Sie einem (r.3) keinen unformatierten Zeiger zu owner<T> .

Diese Warnung erzwingt R.3 aus den C++-Kernrichtlinien. Weitere Informationen finden Sie unter C++ Core Guidelines R.3.

Hinweise

Besitzer werden von Zuordnungen oder von anderen Besitzern initialisiert. Diese Warnung tritt auf, wenn Sie einem Besitzerzeiger einen Wert von einem unformatierten Zeiger zuweisen. Unformatierte Zeiger garantieren keine Eigentumsübertragung; Der ursprüngliche Besitzer kann die Ressource weiterhin enthalten und versuchen, sie freizugeben. Es ist in Ordnung, einen Wert von einem Besitzer einem unformatierten Zeiger zuzuweisen. Unformatierte Zeiger sind gültige Clients für den Zugriff auf Ressourcen, aber nicht für die Verwaltung.

Codeanalysename: DONT_ASSIGN_RAW_TO_OWNER

Beispiel

Verwenden der Objektadresse:

In diesem Beispiel wird versucht, den Besitz der Adresse des defaultSocket Besitzerzeigers socketzuzuweisen:

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