RAII惯用法:C++资源管理的利器 RAII是指C++语言中的一个惯用法(idiom),它是“Resource Acquisition Is Initialization”的首字母缩写.中文可将其翻译为“资源获取就是初始化”.虽然从某种程度上说这个名称并没有体现出该惯性法的本质精神,但是作为标准C++资源管理的关键技术,RAII早已在C++社群中深入人心. 我记得第一次学到RAII惯用法是在Bjarne Stroustrup的<C++程序设计语言(第3版)>一书中.当讲述C++资源管理时,B…
如果你对外语感兴趣,那肯定听过"idiom"这个词.牛津词典对于它的解释叫惯用语,再精简一些可以叫"成语".想要掌握一门语言,其中的"成语"是不能不学的,而希望成为地道的语言使用者,"idiom"则是必不可少的.程序语言其实和外语也很类似,两者都有自己的语法,一个个函数也就像一个个词汇,大部分的外语都是自然语言,有着深厚的历史文化底蕴,因此有不少idiom,而编程语言虽然只有短短数十岁,idiom却不比前者少.不过对于程序设计…
看到<Effective STL>条款 9 的时候想到了我以前复习的"如何正确使用迭代器删除元素",我面试时使用的也是里面的方法,看面试官的反应好像也没有什么问题,还问了我一些我早已整理过的考点.但看到条款 9 之后,我就觉得自己以前回答得没什么水平了. 文本参考了条款 9 和条款 32. remove() <algorithm> 中的 remove() 的声明为: template<class ForwardIt, class T> Forward…
Intent To increase the flexibility of a class template's interface by allowing the class template to participate in the same implicit type conversions (coercion) as its parameterizing types enjoy. Also Known As[edit] Motivation[edit] It is often usef…
使用<![CDATA[]]>保持SQL格式 IN 查询…
http://blog.csdn.net/hunter8777/article/details/6327704 C++中的RAII全称是“Resource acquisition is initialization”,直译为“资源获取就是初始化”.但是这翻译并没有显示出这个惯用法的真正内涵.RAII的好处在于它提供了一种资源自动管理的方式,当产生异常.回滚等现象时,RAII可以正确地释放掉资源. 举个常见的例子: void Func() { FILE *fp; char* filename = …
目录 1. 不要使用可变类型作为参数的默认值 1. 不要使用可变类型作为参数的默认值 摘自<流畅的Python>8.4.1 class HauntedBus: """备受幽灵乘客折磨的校车""" def __init__(self, passengers=[]): self.passengers = passengers def pick(self, name): self.passengers.append(name) def dr…
一.Golang并发基础理论 Golang在并发设计方面参考了C.A.R Hoare的CSP,即Communicating Sequential Processes并发模型理论.但就像John Graham-Cumming所说的那样,多数Golang程序员或爱好者仅仅停留在“知道”这一层次,理解CSP理论的并不多,毕竟多数程序员是搞工程 的.不过要想系统学习CSP的人可以从这里下载到CSP论文的最新版本. 维基百科中概要罗列了CSP模型与另外一种并发模型Actor模型的区别: Actor模型广义…
1.前言  今天看代码时候,遇到一些宏,之前没有见过,感觉挺新鲜.如是上网google一下,顺便总结一下,方便以后学习和运用.C语言程序中广泛的使用宏定义,采用关键字define进行定义,宏只是一种简单的字符串替换,根据是否带参数分为无参和带参.宏的简单应用很容易掌握,今天主要总结一下宏的特殊符号及惯用法. (1)宏中包含特殊符号:#.##.       (2)宏定义用do{ }while(0) 2.特殊符号#.## (1)# When you put a # before an argumen…
转自:http://tonybai.com/2014/09/29/a-channel-compendium-for-golang/ 在进入正式内容前,我这里先顺便转发一则消息,那就是Golang 1.3.2已经正式发布了.国内的golangtc已经镜像了golang.org的安装包下载页面,国内go程序员与爱好者们可以到"Golang中 国",即golangtc.com去下载go 1.3.2版本. Go这门语言也许你还不甚了解,甚至是完全不知道,这也有情可原,毕竟Go在TIOBE编程语…