我正在阅读智能指针,特别是弱指针。我理解弱指针没有类似于共享指针的get()
方法,因为它不确定弱指针是否指向任何东西。然后我发现intelligent建议使用_Get()
方法。
std::weak_ptr的_Get()
方法到底是做什么的,什么时候应该使用它?
从不。为实现保留下划线大写字母名称。作为用户,你永远不应该使用它们。此外,它没有在weak_ptr
的接口中列出,因此基于它编写的代码将不具有可移植性。
至于它的作用:它可能是一个辅助函数。由于它是为的任何用途的实现保留的,因此深入研究它几乎没有意义,因为它允许在较小的版本之间更改(或消失)。
N4140§17.6.4.3.2 [global.names]/1
某些名称集和函数签名总是保留给实现:—每个名称包含一个双下划线
__
或以下划线开头,后跟大写字母(2.12)保留给实现以供任何使用。