Avertissement C26406
N’affectez pas de pointeur brut à un
owner<T>
(r.3)
Cet avertissement applique R.3 à partir des instructions de base C++. Pour plus d’informations, consultez C++ Core Guidelines R.3.
Notes
Les propriétaires sont initialisés à partir d’allocations ou d’autres propriétaires. Cet avertissement se produit lorsque vous affectez une valeur d’un pointeur brut à un pointeur propriétaire. Les pointeurs bruts ne garantissent pas le transfert de propriété ; le propriétaire d’origine peut toujours contenir la ressource et tenter de la libérer. Il est possible d’affecter une valeur d’un propriétaire à un pointeur brut. Les pointeurs bruts sont des clients valides pour accéder aux ressources, mais pas pour les gérer.
Nom de l’analyse du code : DONT_ASSIGN_RAW_TO_OWNER
Exemple
Utilisation de l’adresse de l’objet :
Cet exemple tente d’affecter la propriété de l’adresse du defaultSocket
pointeur socket
propriétaire :
gsl::owner<Socket*> socket = defaultSocket ? &defaultSocket : new Socket(); // C26406