- 博客(4)
- 资源 (3)
- 收藏
- 关注
原创 shared_ptr使用注意事项
罗列出在使用智能指针的时候可能会犯的一些错误: 条款1:不要把一个原生指针给多个shared_ptr管理 int* ptr = new int; shared_ptr p1(ptr); shared_ptr p2(ptr); 在出作用域的时候,ptr的资源会被释放两次,把握的原则是:出了第一个shared_ptr用原生指针定义外,其后的所有操作都要以智能指针作为对象,在库中提供的几
2011-12-10 17:41:44 1290
原创 smart_ptr之shared_ptr(二)
前面已经介绍了shared_ptr的基本使用,这篇文件主要介绍它的定制器和删除器的部分功能。 在一定程度上,删除器使用的概率会大很多。 在shared_ptr中有一个构造函数是这样的: template shared_ptr(Y * p, D d): px(p), pn(p, d) { boost::detail::sp_enable_shared_from_t
2011-12-10 16:47:07 648
翻译 自定义数据类型中安全的bool转换操作
一:背景需求 在自定义数据类型的时候,需要在boolean上下文中判断该数据类型是否有意义(这个是否由意义不是我们所谓的是否为空等,而是根据这个数据类型具体的实现来体现)。例如:boost库中的shared_ptr指针,就可以直接在boolean上下文中判断该对象保存的资源指针是否有效,如果无效,在其中就会返回"false",如果有效就会返回"true".可能看过boost库源代码的朋友都知道,
2011-12-06 22:07:45 2257
原创 smart_ptr之shared_ptr
一、介绍引用计数指针 几乎所有稍微复杂点的程序都需要某种形式的引用计数智能指针。这些智能指针让我们不再需要为了控制被两个或多个对象共享的对象的生存期而编写复杂的逻辑。当引用计数降为零,没有对象再需要这个共享的对象,这个对象就自动被销毁了。引用计数智能指针可以分为插入式(intrusive)和非插入式(non-intrusive)两类。前者要求它所管理的类提供明确的函数或数据成员用于
2011-12-04 17:35:07 888
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人