boost::scoped_ptr与std::unique_ptr
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相关推荐
- std::unique_ptr<T>与boost::scoped_ptr<T>的特殊性
std::unique_ptr<T>与boost::scoped_ptr<T>的底层实现原理类型,不清楚是谁"借鉴"另一个的实现的,但这不重要. std:: ...
- C++智能指针剖析(上)std::auto_ptr与boost::scoped_ptr
1. 引入 C++语言中的动态内存分配没有自动回收机制,动态开辟的空间需要用户自己来维护,在出函数作用域或者程序正常退出前必须释放掉. 即程序员每次 new 出来的内存都要手动 delete,否则会造 ...
- 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 原创)智能指针拾遗 (原创)智能指 ...
- 使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp
使用 std::shared_ptr 和 std::unique_ptr 测试 boost/pointer_cast.hpp 实现功能 C++实现代码 实现功能 使用 std::shared_ptr ...
- Boost智能指针——boost::scoped_ptr(使用及原理分析)
简介 boost::scoped_ptr是一个比较简单的智能指针,它能保证在离开作用域之后它所管理对象能被自动释放.下面这个例子将介绍它的使用: 1 #include <iostream> ...
- c++11 智能指针 (std::unique_ptr)(一)
定义于头文件 <memory> template<class T,class Deleter = std::default_delete<T>> class uni ...
- (译+原)std::shared_ptr及std::unique_ptr使用数组
转载请注明出处: http://www.cnblogs.com/darkknightzh/p/5462363.html 参考网址: http://stackoverflow.com/questions ...
- boost::scoped_ptr相关的测试程序
boost::scoped_ptr相关的测试程序 实现功能 C++实现代码 实现功能 boost::scoped_ptr相关的测试程序 C++实现代码 #include <boost/utili ...
- boost::hana::ext::std::vector_tag用法的测试程序
boost::hana::ext::std::vector_tag用法的测试程序 实现功能 C++实现代码 实现功能 boost::hana::ext::std::vector_tag用法的测试程序 ...
最新文章
- Springboot的slf4j的配置文件模板
- python没有英文基础能学吗-学python需要英语基础吗
- Eclipse 无限编译Invoking 'Maven Project Builder'导致卡主
- 神经网络架构演进史:全面回顾从LeNet5到ENet十余种架构
- Linux自定义命令
- iOS 远程通知(Remote Notification)和本地通知(Local Notification)
- CTS(23)---Camera Media CTS GTS VTS 记录
- linux boot 缺省状态,Bootload启动过程全描述(uclinux)【转载】
- 14的虚拟机可以用在15上面吗_环氧底漆是什么漆,分很多种吗?环氧底漆都可以用在什么上面...
- 苹果 macOS Monterey 游戏玩家的新功能
- Android Day01-Android与Java的区别总结
- 智能电销机器人语音自动外呼效果好吗?《各版本机器人部署》
- input限制小数位数
- 纪念日该给女朋友送什么礼物?
- wx.previewImage图片加载不出来
- Java连接打印机打印二维码
- js将 一串数字1403149534转换为日期格式
- Credly 数字证书
- 《Android源码设计模式》之迭代器模式
- 计算机usb端口没反应,如何解决win10系统电脑usb接口没反应的问题