Loki 智能指针 SmartPtr 的使用

原创 2011年01月13日 15:52:00

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

智能指针的标准之争:Boost vs. Loki

智能指针的标准之争:Boost vs. Loki 撰文/马维达  2001 年10 月和2002 年4 月,在美国的华盛顿和荷兰的安的列斯群岛上分别召开了两次C++标准会议。会议的内容...
  • u012519333
  • u012519333
  • 2016年09月10日 16:51
  • 244

大型项目开发:谨慎使用智能指针

智能指针使用上的问题智能指针的使用太普遍了,它让程序员摆脱了内存管理的恶梦,但实际上智能指针本身也可能引入另一个恶梦。主要包括两个问题点: 1.性能问题。因为需要引入一些变量(bookkeeping)...
  • HorkyChen
  • HorkyChen
  • 2015年07月13日 00:30
  • 3481

C++11及C++14标准的智能指针

智能指针这个概念经常会碰见,而且面试的时候太经常会被问到了,特来总结一下。 C++11的智能指针及其背景 auto_ptr的坑点 C++11之前的智能指针是auto_ptr,一开始它的出现...
  • haolexiao
  • haolexiao
  • 2017年03月18日 23:55
  • 1476

关于boost智能指针使用的一些坑的总结

boost库的智能指针确实是一个好东西,可以方便我们进行内存管理,避免因为忘记调用delete而导致的内存泄漏。然而boost库的只能指针却并非一定那么智能,在使用boost库智能指针的时候有一些坑,...
  • tgxallen
  • tgxallen
  • 2017年04月09日 15:30
  • 1683

smartptr——基于自动引用计数的智能指针

  • 2015年10月14日 16:40
  • 2KB
  • 下载

SmartPtr(智能指针)

1:智能指针的发展历史? 智能指针的原理就是管理资源的RAII机制,RAII机制是通过利用对象的自动销毁,使得资源也具有了生命周期,具有了自动销毁和自动回收的功能。RAII它是在面向对象语言中的一种惯...
  • ypt523
  • ypt523
  • 2017年08月05日 16:15
  • 154

智能指针的标准之争:Boost vs. Loki

智能指针的标准之争:Boost vs. Loki 撰文/马维达  2001 年10 月和2002 年4 月,在美国的华盛顿和荷兰的安的列斯群岛上分别召开了两次C++标准会议。会议的内容...
  • u012519333
  • u012519333
  • 2016年09月10日 16:51
  • 244

智能指针的标准之争:Boost vs. Loki

撰文/马维达     智能指针的标准之争:Boost vs. Loki       2001 年10 月和2002 年4 月,在美国的华盛顿和荷兰的安的列斯...
  • Allan_Zeng
  • Allan_Zeng
  • 2013年12月19日 22:25
  • 513

智能指针的使用示例

  • 2013年04月16日 14:41
  • 2KB
  • 下载

智能指针使用

  • 2014年08月27日 16:08
  • 28KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Loki 智能指针 SmartPtr 的使用
举报原因:
原因补充:

(最多只允许输入30个字)