从左到右,Test1,PM,Dev lead,我,Dev2,Dev3
posted @
2008-12-07 20:15 陈梓瀚(vczh) 阅读(4004) |
评论 (14) |
编辑 收藏
摘要: 今天将Serialization进行了重构,让其支持容器。于是使用以前的基础设施就能完成这个Demo了。代码如下:
阅读全文
posted @
2008-11-22 02:26 陈梓瀚(vczh) 阅读(2130) |
评论 (6) |
编辑 收藏
摘要: 众所周知,boost里面有一个Serialization。不过我这个跟boost的有本质上的差别。boost的Serialization是通过重载操作符将一个对象与一个流进行读写,而我则通过记录类的成员变量来自动产生相应的读写动作。使用方便。
阅读全文
posted @
2008-11-21 09:09 陈梓瀚(vczh) 阅读(2822) |
评论 (9) |
编辑 收藏
摘要: 现在市面上已经有很多Unit Test的工具了。对于C++来说最为著名的莫过于CppUnit。CppUnit已经具有丰富的功能,例如UI、报告生成等等。那么为什么还要自己做Unit Test工具呢?主要还是为了学习,其次是可以为自己的特殊需求打造特殊的工具。
阅读全文
posted @
2008-11-13 09:38 陈梓瀚(vczh) 阅读(2512) |
评论 (4) |
编辑 收藏
作者(不是我)信息:
华南理工大学软件学院本科07级(现大二)
进入大学前玩过几个星期pascal,高考后的暑假重新学编程
程序信息:(点击这里下载)
学习C++一年后的作品。
内含所有代码,以及VC++工程文件。
一个程序,输入只有匹配没有捕获的正则表达式,输入被匹配的字符串,输出字符串中符合正则表达式要求的部分。
支持括号改变优先级,[字符集]和[^字符集],少量转义(\d等),循环(+*?),没有捕获
输入输出(红色部分为用户输入的内容):
请输入正则表达式 : /\*([^\*]|\*+[^\*/])*\*+/
请输入所要匹配的字符串 : a//a///*\\nab**abc**//*
a//a//【/*\\nab**abc**/】/*
算法简要:正则表达式->语法树->ε-NFA->NFA->DFA->连通矩阵。
使用递归向下法判断输入的正则表达式的合法性并转换为树结构,其后转成状态机。
posted @
2008-11-08 06:44 陈梓瀚(vczh) 阅读(4914) |
评论 (21) |
编辑 收藏
摘要: 新加入的Expected语法已经完全支持了。使用了Expected的符号会因为调用者的不同而使用不同的scope内的函数。代码如下:
阅读全文
posted @
2008-11-03 05:41 陈梓瀚(vczh) 阅读(1667) |
评论 (0) |
编辑 收藏
摘要: 有了Expected语法之后总是要实验一下的。现在给出一个非完整函数eq的声明,并用一个列表查找函数使用eq。已知代码如下:
阅读全文
posted @
2008-11-02 07:36 陈梓瀚(vczh) 阅读(1513) |
评论 (0) |
编辑 收藏
摘要: Kernel FP的模板函数比较严格。对于任意的模板函数的类型参数,这个参数必须能够接受所有类型。当然,类型推导会通过阅读代码来精确化程序员设定的类型。譬如说一个函数F的类型是T->T,但是经过阅读代码发现,参数只能是某种类型的列表,那么类型推导就会将这个函数的类型修改为list T->list T。
但是这样会有一个问题。类型推导只能够推导已知的函数。如果一个模板函数里面用了操作符,而这个操作符暂时只为几个类型定义的话,那么由于不是所有的类型都能够接受该操作符,所以这个操作符就没办法给未知确切类型的参数使用。下面就有一个例子:
阅读全文
posted @
2008-11-02 06:52 陈梓瀚(vczh) 阅读(1323) |
评论 (0) |
编辑 收藏
摘要: 今天写了Kernel FP模板函数实例化的代码。虽然还有一点小bug,不过还是说一下。
阅读全文
posted @
2008-11-01 07:05 陈梓瀚(vczh) 阅读(1387) |
评论 (0) |
编辑 收藏
摘要: 类型推导过于复杂,已经到了无法Step In/Over的地步了,于是只好靠输出大量调试信息来解决问题。这里给出了我为Kernel FP开发的一些简单的调试用宏。在不需要调试信息的时候,可以通过简单关闭调试而将产生调试信息的运行时负担完全去除。
阅读全文
posted @
2008-10-29 10:04 陈梓瀚(vczh) 阅读(2244) |
评论 (3) |
编辑 收藏