04 2013 档案

摘要:标准没有对全局变量的初始化时间做出规定即使代码已经进入main函数,也不能假定全局变量已经初始化完毕编译器仅仅保证在第一次使用全局变量前已经完成初始化,而且各个全局变量之间的初始化顺序是无法确定的总结:绝对不能依赖全局变量对复杂对象进行初始化,否则是自己找坑(嗯,最近我就跳进去了) 阅读全文
posted @ 2013-04-15 21:14 mightofcode 阅读(657) 评论(0) 推荐(0)
摘要:特别是c++项目,一半以上的时间在编译,如果遇到某些奇葩问题你还不得不rebuild而且为了优化编译速度,还得不断地修改头文件,优化包含关系,很无聊的工作如果公司有一个脚本系统就好了,大大提高生产力 阅读全文
posted @ 2013-04-09 10:54 mightofcode 阅读(327) 评论(0) 推荐(0)
摘要:什么是SFINAE?Substitution failure is not an error,匹配失败并不是错误,意思是用函数模板匹配规则来判断类型的某个属性是否存在,也就是说SFINAE可以作为一种编译期的不完整内省方法具体参见http://en.wikipedia.org/wiki/Substitution_failure_is_not_an_error案例:使用SFINAE判断模板参数是否是class(在很多场合这个trick非常有用):template<typename T>class isClassA{ typedef char _One; typedef struct{ 阅读全文
posted @ 2013-04-07 19:04 mightofcode 阅读(3856) 评论(0) 推荐(1)
摘要:什么是CRTP?Thecuriously recurring template pattern(CRTP) is aC++idiom in which a classXderives from a class template instantiation usingXitself as template argument.类X继承了一个以X作为模板参数的的模板,这就是CRTP,具体介绍请参看维基百科CRTP简介CRTP的意义是父类(接下来我们称之为CRTP父类,相应的子类成为CRTP子类)知道子类的类型,可以做一些虚函数做不到的事,比如维基百科里面提到的类计数,clone函数这两个东西用虚函数 阅读全文
posted @ 2013-04-03 11:51 mightofcode 阅读(3305) 评论(1) 推荐(1)