将boost :: shared_ptr转换为实际的类

2 c++ boost boost-smart-ptr

有人会这样做吗?例如:

Client* client = it->second;
Run Code Online (Sandbox Code Playgroud)

其中 - >第二个是boost :: shared_ptr到Client错误:

cannot convert `const ClientPtr' to `Client*' in initialization
Run Code Online (Sandbox Code Playgroud)

Sal*_*gar 7

boost :: shared_ptr有一个.get()方法来检索原始指针.

关于何时以及何时不使用它的文档:http://www.boost.org/doc/libs/1_44_0/libs/smart_ptr/shared_ptr.htm


ice*_*ime 7

您可以使用该get方法boost::shared_ptr来检索指针,但要非常小心:从引用计数共享指针中提取裸指针可能很危险(如果引用计数达到零,将触发删除,从而使您的原始数据无效)指针).