Loki 智能指针 SmartPtr 的使用

最近做了个项目,比较复杂,想用智能指针来管理内存。网上资料很少,自己研究了一把Loki SmartPtr

 

Loki的安装

    1,下载源码,当前最新版是loki-0.1.7,解压缩。

    2,将src目录下的工程编译链接,生产的静态库在lib目录下

    3,为了方便,将loki的include目录加入工程包含目录

        设置环境变量入LOKI_ROOT=D:/loki-0.1.7/

         VS中,工具->选项->项目和解决方案->VC++目录,在 ‘显示以下内容目录’ 下拉到 ‘包含文件’,添加 $(LOKI_ROOT)

    4,将静态库置于可搜索路径下,有两种方法,一是将lib目录加入Path路径下,二是直接将lib拷贝到工程项目下。

 

   安装完成。 

 

 

SmartPtr的使用:

先上代码


CTest.h

 

main.c

代码中使用的是默认模板。

 

注意事项:

 

    注意第4个Checking 策略模板,默认是AssertCheck,也就是只有调试期生效,Release版就不会检查有效性。

 

    解释一下Loki的Checking 策略模板:

    AssertCheck,默认,使用assert,在取值时检查。

    AssertCheckStrict,使用assert,在初始化时检查。使用这种方式就不能将其定义成成员变量除非显示赋初值。

    RejectNullStatic,使用SmartPtr的默认构造函数就会产生编译期错误。

    RejectNull,取值每个为NULL,爆异常。

    RejectNullStrict,不允许NULL为初值,否则爆异常。

    NoCheck,无为模板,不做检查。

阅读更多
个人分类: Loki
想对作者说点什么? 我来说一句

C++ 智能指针实现

2010年10月28日 326KB 下载

没有更多推荐了,返回首页

不良信息举报

Loki 智能指针 SmartPtr 的使用

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭