自C ++ 11以来,我们就拥有了相当完整的一组智能指针类型:
但是缺少的是没有所有权的智能指针,并与上述功能集成在一起。
这似乎使开发人员的讨论陷入了某种松散的分类,该分类通常使用诸如“那是一个没有所有权的智能指针”之类的短语。但这不是在我的代码中命名指针包装模板时要使用的好名字。
对于非拥有的智能指针,是否有更好的代码友好名称的建议?
template<typename T>
struct NonOwningSmart_pointer;
Run Code Online (Sandbox Code Playgroud)
有std :: weak_ptr并不能真正满足要求,因为它需要shared_ptr。
更新:独特地命名这种类型的智能指针的主要好处是代码清晰,构造为nullptr并与其他标准指针类型兼容。