C++11 std::weak_ptr的_Get方法做什么?应该在什么时候使用?

C++11 std::weak_ptr的_Get方法做什么?应该在什么时候使用?,c++11,smart-pointers,weak-ptr,C++11,Smart Pointers,Weak Ptr,我在读关于智能指针的书,尤其是弱小指针。我知道弱指针没有类似于共享指针的get()方法,因为不确定弱指针是否指向任何东西。然后我发现Intellisence建议了\u Get()方法 std::weak\u ptr的\u Get()方法到底做了什么,什么时候应该使用它?从不。下划线大写字母名称保留用于实现。作为用户,你永远不应该使用它们。此外,它没有在中列出,因此根据它编写的代码将不可移植 至于它的作用:它可能是一些辅助函数。由于它是为任何用途的实现保留的,因此进一步深入研究它是没有意义的,因为

我在读关于智能指针的书,尤其是弱小指针。我知道弱指针没有类似于共享指针的
get()
方法,因为不确定弱指针是否指向任何东西。然后我发现Intellisence建议了
\u Get()
方法


std::weak\u ptr的
\u Get()
方法到底做了什么,什么时候应该使用它?

从不。下划线大写字母名称保留用于实现。作为用户,你永远不应该使用它们。此外,它没有在中列出,因此根据它编写的代码将不可移植

至于它的作用:它可能是一些辅助函数。由于它是为任何用途的实现保留的,因此进一步深入研究它是没有意义的,因为它甚至可以在较小的版本之间更改(或消失)

N4140§17.6.4.3.2[全局名称]/1

某些名称和函数签名集始终保留给 实现:-包含双下划线的每个名称
或以下划线开头,后跟大写字母
(2.12)保留给实施方,以供任何使用


为什么这个功能是公开的?@oddRaven我不知道。也许这在编译器附带的标准库中是有意义的。但是,它绝对不应该作为代码完成建议显示给您。