Megosztás:


Figyelmeztetés C26406

Ne rendeljen nyers mutatót ( owner<T> r.3)

Ez a figyelmeztetés kikényszeríti az R.3-at a C++ alapvető irányelveiből. További információ: C++ Core Guidelines R.3.

Megjegyzések

A tulajdonosok inicializálása foglalásokból vagy más tulajdonosoktól történik. Ez a figyelmeztetés akkor fordul elő, ha egy nyers mutatóból származó értéket rendel egy tulajdonosmutatóhoz. A nyers mutatók nem garantálják a tulajdonjog átruházását; Az eredeti tulajdonos továbbra is megtarthatja az erőforrást, és megpróbálhatja felszabadítani azt. Nem baj, ha egy tulajdonostól származó értéket rendel egy nyers mutatóhoz. A nyers mutatók érvényes eszközök az erőforrásokhoz való hozzáféréshez, de kezelésükre nem alkalmasak.

Kódelemzés neve: DONT_ASSIGN_RAW_TO_OWNER.

példa

Objektumcím használata:

Ez a minta megpróbálja a defaultSocket cím tulajdonjogát a socket mutatóhoz rendelni.

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