* 导入智能指针(smart_ptr) * 如果是G++且支持c++0x草案1(tr1版本)的smart_ptr[GCC版本高于4.0] * 则会启用GNU-C++的智能指针 * * 如果是VC++且支持c++0x草案1(tr1版本)的smart_ptr[VC++版本高于9.0 SP1] * 则会启用VC++的智能指针 * * 否则启用boost中的smart_ptr库(如果是这种情况需要加入boost库) ...
shared_ptr<int> p(new int(2)); f(p, g()); } // 下面这个就可能内存泄漏! void bad() { f(shared_ptr<int>(new int(2)), g()); } 看看基本的使用例子。 #include <boost/smart_ptr.hpp> #include <iostream> int main() { // Basic useage boost::shared_ptr<int> p1(new int(10...
// 使用RAII思想设计的SmartPtr类template<classT>classSmartPtr{public:SmartPtr(T*ptr=nullptr):_ptr(ptr){}~SmartPtr(){if(_ptr)delete_ptr;}private:T*_ptr;};intdiv(){int a,b;cin>>a>>b;if(b==0)throwinvalid_argument("除0错误");returna/b;}voidFunc(){ShardPtr<int>sp1(newint);Shard...
boost的smart_ptr中提供了4种智能指针和2种智能指针数组来作为std::auto_ptr的补充。 shared_ptr<boost/shared_ptr.hpp>:使用shared_ptr进行对象的生存期自动管理,使得分享资源所有权变得有效且安全. scoped_ptr<boost/scoped_ptr.hpp>: 用于确保能够正确地删除动态分配的对象。scoped_ptr 有着与std::auto_ptr类...
Boost使用笔记(Smart_ptr) 概述 Boost库是一个功能强大、构造精巧、跨平台、开源免费的C++程序库,提供了代码编写中所需要的几乎所有常见工具,例如智能指针、bind、正则表达式、xml解析等工具。其代码以泛型编程为基础,且绝大部分代码放在扩展名为hpp的头文件中,以内联的方式引入到目标程序,因此Boost库几乎无需编译即可...
smart_ptr:智能指针 在现代 C++ 中,绝对不要再使用“裸指针(naked pointer)”了,而是应该使 用“智能指针(smart pointer)”。 什么是智能指针? 所谓的“智能指针”,当然是相对于“不智能指针”,也就是“裸指针”而言的。 所以,我们就先来看看裸指针,它有时候也被称为原始指针,或者直接简称为指针。
Boost::smart_ptr 一Boost::smart_Ptr 我们学习C++都知道智能指针,例如STL中的std::auto_ptr,但是为什么要使用智能指针,使用它能带给我们什么好处呢? 最简单的使用智能指针可以不会因为忘记delete指针而造成内存泄露。还有如果我们开发或者使用第三方的lib中的某些函数需要返回指针,这样的返回的指针被client使用的时候,...
auto_ptr 的问题是:一个对象的拥有权可以在多个auto_ptr之间进行转移,这导致对象的拥有权非常混乱,有时很难找到是哪一个auto_ptr拥有当前当前对象。 unique_ptr unique_ptr的拷贝构造函数被delete,但是允许移动构造函数,赋值运算符同样被delete,但是允许移动赋值。
*ptr2 =123; assert(*ptr2 ==123); } 开发者ID:yurai007,项目名称:my_shared_ptr,代码行数:10,代码来源:smart_ptr_tests.cpp 示例4: send ▲点赞 1▼ //Send databoolUDPClient::send(smart_ptr<UDPPacket> pck) {if(!pck)returnfalse; ...
在下文中一共展示了smart_ptr::set_fp_data方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。 示例1: read_surface ▲点赞 6▼ ulongread_surface(conststd::string& fname, ulong nx, ulong ny, ...