C++中的智能指针是用一个类对另一个对象的指针或者引用进行管理,具体对该类的管理可以用包含对象指针以及引用计数的类来记录;一般有两种方式实现:1. 在对象内部记录引用的个数,这需要对象预留引用计数相关的接口2. 用一个单独的资源管理类进行管理,则不需要修改对象下面主要是第二种方法:(参考)http:...
分类:
编程语言 时间:
2014-07-29 21:22:43
阅读次数:
336
Boost.ScopeExit库由于种种原因,C++中没有Java或C#中的try{}finally{}语句,虽然有SEH,可以实现finally效果,但是可定制性太差,不尽人意。SEH实现的finally语句__try{ throw std::bad_exception();}__finally{...
分类:
其他好文 时间:
2014-07-27 10:46:42
阅读次数:
223
#include #include #include #include #include #include using namespace std;using namespace boost;void double_int(int & i){ i *= 2;}mutex io_mu;void pri...
分类:
其他好文 时间:
2014-07-26 00:59:46
阅读次数:
253
今天开始需要分析clang的源码了,LLVM这个开源的project代码写的很不错的,也算是巩固一下C++的一些基础知识了。首先是在llvm/ADT/OwningPtr.h中定义了owningptr智能指针的实现:源码如下: 1 /// OwningPtr smart pointer - Ownin...
分类:
编程语言 时间:
2014-07-25 14:20:31
阅读次数:
897
Visual Studio 2013 编译 boost-1_56_0_b1...
分类:
其他好文 时间:
2014-07-25 11:15:31
阅读次数:
262
Boost库是一个可移植、提供源码的C++库,作为标准库的后备,是C++标准化进程的发动机之中的一个。 Boost库由C++标准委员会库工作组成员发起,当中有些内容有望成为下一代C++标准库内容。在C++社区中影响甚大,是不折不扣的“准”标准库。 Boost因为其对跨平台的强调,对标准C++的强调....
分类:
其他好文 时间:
2014-07-25 02:15:24
阅读次数:
314
noncopyable大家都知道定义一个空类的时候,它实际包含了构造函数,拷贝构造函数,赋值操作符和析构函数等。这样就很容易产生一个问题,就是当用户调用Aa(“^_^")或者Ac="^_^" 时会发生一些意想不到的行为,所以很多时候我们需要禁用这样的用法。一种方法就是把拷贝构造函数和赋值操作符显式的...
分类:
编程语言 时间:
2014-07-24 04:58:18
阅读次数:
300
1. 手动下载Boost库1.55。 wget -O boost_1_55_0.tar.gz http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download tar xzvf boost_1_...
分类:
其他好文 时间:
2014-07-23 15:39:29
阅读次数:
253
1.再说智能指针 1.1 为什么要用智能指针?对于一个指针,它指向一个动态分配内存的对象,若同时有多个指针指向该对象,那么当我们delete的时候,就会出现delete 一个无效内存的错误,因为该对象已经被delete过了,所以这就造成了错误。针对这一情况,我们想到,new 和 delete 必须....
分类:
编程语言 时间:
2014-07-23 11:36:26
阅读次数:
308