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,无为模板,不做检查。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值