,我們從C++ 11幸運地擁有一個相當完整的智能指針類型:實用代碼友好的名稱,非智能擁有指針
- 的std :: shared_ptr的
- 的std :: weak_ptr的
- 的std ::的unique_ptr
- 的std :: auto_ptr的(不建議使用)
但缺少的是一個聰明的指針沒有所有權,蒙山綜合以上。
這似乎將開發人員的討論帶入了一個有點鬆散的分類,通常有這樣的詞組,如'非擁有智能指針'。但是這不是我想用於命名我的代碼中的指針包裝器模板的好名字。
對於非擁有智能指針有更好的代碼友好名稱有什麼建議嗎?
template<typename T>
struct NonOwningSmart_pointer;
存在std :: weak_ptr,它不能滿足需求,因爲它需要shared_ptr。
更新:唯一地命名這種類型的智能指針的主要好處是代碼清晰,構造爲nullptr並與其他std指針類型一起正常播放。
弱指針與「NonOwningSmart_pointer」有什麼不同? –
據我所知,std :: weak_ptr總是與std :: shared_ptr關聯。但有std :: unique_ptr,也是原始的。 – Jojje
爲什麼你首先需要非擁有智能指針?與普通指針相比有什麼好處? – SergeyA