10 2012 档案
摘要:对于参数较多的函数,如UI库函数,你很难去记忆每个位置的参数类型和意义,尤其在你的IDE比较简陋的开发环境下,尤为痛苦,可能你需要频繁的查询文档。像Python这样语言,原生支持命名参数,如def func(name, age): print name, agefunc('aaa', 1)func(age = 2, name = 'bbb')可能你的函数有10个参数,其中大部分都可以有默认值,因此,如果你需要指定其中第3、第5个参数的值,而其他参数使用默认行为的时候,"func(arg3 = 3, arg5 = 5)"这样的调用很方便。要在C
阅读全文
摘要:刘未鹏牛最近的一篇文章“C++11和快速迭代开发”中,提到一个小工具Ensure,很有用,但他不方便提供具体代码,这里我给出一个简易实现。Ensure用法如:ENSURE(0 <= index && index < v.size())(index)(v.size());断言失败时,会打印:Failed: 0 <= index && index < v.size()File: xxx.cpp Line: 123Context Variables: index = 12345 v.size() = 100概括来说,Ensure至少包括以下特性
阅读全文
摘要:几个月的构想+0.5小时的设计+4小时的linq.h编码+3小时的测试编码。大量使用C++11的特性,在GCC 4.7.2下编译通过。关于实现相关的描述就不说了,我表达能力差,恐怕讲清楚还需要好几个小时。具体使用参见测试码。上代码:(1) linq.hView Code #ifndef LINQ_H#define LINQ_H#include <cassert>#include <utility>#include <functional>#include <memory>#include <algorithm>#include <
阅读全文

浙公网安备 33010602011771号