关闭

Loki 智能指针 SmartPtr 的使用

标签: destructornulleachincludepath工具
1811人阅读 评论(1) 收藏 举报
分类:

最近做了个项目,比较复杂,想用智能指针来管理内存。网上资料很少,自己研究了一把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,无为模板,不做检查。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:24899次
    • 积分:315
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:1篇
    • 译文:0篇
    • 评论:15条
    文章分类
    最新评论