复制boost :: shared_ptr的内容 - 有办法
Copying the Contents of a boost::shared_ptr - is there a way?
我想复制boost :: shared_ptr的内容,我在函数中获取
void virtual Add(const T_Value& value)
{
push_back(value);
if (_limit != -1 && int(size()) > _limit)
erase(begin());//,begin() + (_limit >> 1));
}
其中t_value是 boost::shared_ptr<ValueType>
我的问题是,使用此方法,显然,value
的使用_Count会增加,因为它现在在std ::列表中具有另一个引用。
我想做的是,仅将 value
的内容复制到一个新的共享_ptr中,一个带有新计数,然后将其插入列表中。
因此,use_count-在函数末尾(离开示波器)将是value
的value
的原始use_count;以及将插入列表中的新的共享_ptr的1个use_count。
您可以用make_shared
克隆共享指针:
push_back(boost::make_shared<decltype(*value)>(*value));
在C 03上:
push_back(boost::make_shared<typename T_Value::element_type>(*value));
相关文章:
- 理解boost::asio-async_read在无需读取内容时的行为
- boost::进程间消息队列引发错误
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- cmake如何在fedora工作站中找到boost静态库包
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- Boost Graph Library,修复节点大小
- 什么是"#include <boost/functional/hash.hpp> "?
- 基于boost的程序的静态链接——zlib问题
- C++:如何在CLion IDE中安装Boost
- C++Boost Asio Pool线程,带有lambda函数和传递引用变量
- 如何在boost beast http请求中设置http头
- Boost Spirit,获取迭代器内部语义动作
- boost::asio::steady_timer()与sleep()我应该使用哪一个
- boost::asio如何生成多个协同程序,然后加入它们
- 当我尝试使用 sstream 和分面将 Boost Time_duration转换为字符串时,我没有得到所需的格式
- 链接 boost 库时"Error while loading shared libraries"引发的,除了我无法使用 root 访问权限来修复它
- boost::shared_ptr和std::shared-ptr的同居
- 将GoogleMock与Boost::Shared Pointers一起使用时泄漏的Mock对象
- 我可以用std::shared_ptr而不是boost::shared-ptr构建boost库吗
- QSharedPointer VS std::tr1::shared_ptr VS boost::tr1::shared