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 socketpropriétaire :

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