boost::scoped_ptr与std::unique_ptr都是类模板,封装了指针

两者都禁用了拷贝构造和赋值函数,因此不能作为STL容器中的元素,因为在执行push_back()时需要调用赋值函数。

std::unique_ptr实际上与boost::scoped_ptr是等价的,只是std将boost::scoped_ptr拿来名字改为了std::unique_ptr,两者的实现方式是一致的。 boost::scoped_ptr源码如下:

template<class T>
class scoped_ptr
{
private:ScopedPtr(const ScopedPtr<T>& ap);ScopedPtr<T>& operator=(const ScopedPtr<T>& ap);public:ScopedPtr(T* ptr = nullptr):_ptr(ptr){}~ScopedPtr(){if(_ptr){delete _ptr;_ptr = nullptr;}}private:T* _ptr;
};

C++11实现的std::unique_ptr以后,并没有去实现std::unique_array,是因为标准库中有vector,其实是很好用的

boost::scoped_ptr与std::unique_ptr相关推荐

  1. std::unique_ptr<T>与boost::scoped_ptr<T>的特殊性

    std::unique_ptr<T>与boost::scoped_ptr<T>的底层实现原理类型,不清楚是谁"借鉴"另一个的实现的,但这不重要. std:: ...

  2. C++智能指针剖析(上)std::auto_ptr与boost::scoped_ptr

    1. 引入 C++语言中的动态内存分配没有自动回收机制,动态开辟的空间需要用户自己来维护,在出函数作用域或者程序正常退出前必须释放掉. 即程序员每次 new 出来的内存都要手动 delete,否则会造 ...

  3. C++11智能指针(unique_ptr、shared_ptr、weak_ptr)boost::scoped_ptr

    C++11智能指针(unique_ptr.shared_ptr.weak_ptr)_-码农小非-的专栏-CSDN博客_c++ shared_ptr weak_ptr 原创)智能指针拾遗 (原创)智能指 ...

  4. 使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp

    使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp 实现功能 C++实现代码 实现功能 使用 std::shared_ptr ...

  5. Boost智能指针——boost::scoped_ptr(使用及原理分析)

    简介 boost::scoped_ptr是一个比较简单的智能指针,它能保证在离开作用域之后它所管理对象能被自动释放.下面这个例子将介绍它的使用: 1 #include <iostream> ...

  6. c++11 智能指针 (std::unique_ptr)(一)

    定义于头文件 <memory> template<class T,class Deleter = std::default_delete<T>> class uni ...

  7. (译+原)std::shared_ptr及std::unique_ptr使用数组

    转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5462363.html 参考网址: http://stackoverflow.com/questions ...

  8. boost::scoped_ptr相关的测试程序

    boost::scoped_ptr相关的测试程序 实现功能 C++实现代码 实现功能 boost::scoped_ptr相关的测试程序 C++实现代码 #include <boost/utili ...

  9. boost::hana::ext::std::vector_tag用法的测试程序

    boost::hana::ext::std::vector_tag用法的测试程序 实现功能 C++实现代码 实现功能 boost::hana::ext::std::vector_tag用法的测试程序 ...

最新文章

  1. Springboot的slf4j的配置文件模板
  2. python没有英文基础能学吗-学python需要英语基础吗
  3. Eclipse 无限编译Invoking 'Maven Project Builder'导致卡主
  4. 神经网络架构演进史:全面回顾从LeNet5到ENet十余种架构
  5. Linux自定义命令
  6. iOS 远程通知(Remote Notification)和本地通知(Local Notification)
  7. CTS(23)---Camera Media CTS GTS VTS 记录
  8. linux boot 缺省状态,Bootload启动过程全描述(uclinux)【转载】
  9. 14的虚拟机可以用在15上面吗_环氧底漆是什么漆,分很多种吗?环氧底漆都可以用在什么上面...
  10. 苹果 macOS Monterey 游戏玩家的新功能
  11. Android Day01-Android与Java的区别总结
  12. 智能电销机器人语音自动外呼效果好吗?《各版本机器人部署》
  13. input限制小数位数
  14. 纪念日该给女朋友送什么礼物?
  15. wx.previewImage图片加载不出来
  16. Java连接打印机打印二维码
  17. js将 一串数字1403149534转换为日期格式
  18. Credly 数字证书
  19. 《Android源码设计模式》之迭代器模式
  20. 计算机usb端口没反应,如何解决win10系统电脑usb接口没反应的问题

热门文章

  1. SUSE12系统安装及LVM设置详解
  2. 百度地图 Android SDK - 个性化地图
  3. cobbler get-loaders 通过代理下载
  4. 安装perl5.10.0
  5. hdu - 3415 Max Sum of Max-K-sub-sequence
  6. MYSQL性能调优及架构设计学习笔记-影响MYSQL性能的相关因素之实例分析
  7. 虚拟化技术--服务器虚拟化
  8. 真格量化-隐含波动率计算
  9. Android应用开发—通用的GridView网格分割线
  10. python中分支结构包括哪些_python中的分支结构