Loki
文章平均质量分 73
hjing1988
这个作者很懒,什么都没留下…
展开
-
CheckReturn(检查返回值)
Loki库提供了一种方法,要求函数返回后,使用者必须对其进行检查或则赋值。以必须判断指针为例进行说明。自己写的代码简化了很多CheckReturn.h#pragma once#include templatestruct TriggerAssert{ static void run(const T&) { assert( 0 ); }};//原创 2015-07-09 22:49:44 · 4793 阅读 · 0 评论 -
DefaultAlloc
loki库中DefaultAlloc中介绍了c++目前支持的new 和 delete相关的操作我们知道new操作实际包含两个步骤:operator new:分配内存,构造函数调用。而operator new我们是可以重载的相对的delete操作也包含两个步骤,析构函数调用,析构内存.另外简单了解下分配内存过程:vs实现中会调用C的mallo,再调用操作系统的HeapAlloc,操作原创 2015-07-11 15:28:25 · 292 阅读 · 0 评论 -
OrderedStatic
OrderedStatic实现了对象的生命期控制,根据对象寿命Longevity控制析构顺序。默认情况下,全局变量和static全局变量的析构顺序是根据初始化顺序反着析构。OrderedStatic代码几个比较有意思值得学习的地方贴出来一下,其它有些与单件模式的一样不再重述。1、退出函数atexit通过设置该接口,控制exit后,C++调用的用户自己设置的全局退出函数s原创 2015-07-11 17:55:07 · 365 阅读 · 0 评论 -
ScopeGuard
目前看到的ScopeGuard的有个比较能用的上的地方就是,如果需要退出时执行某个操作,可以和方便的使用,而不需要用try finally。不管里面是否抛出异常,都会执行到我们必须执行的函数实现也是利用了构造和析构函数,在构造函数中,将需要调用的函数地址传入,在析构时调用class ScopeGuardImplBase { /// Copy-assi原创 2015-07-11 19:04:12 · 518 阅读 · 0 评论