从前面的代码还可以看出,应用any的过程中还是有比较大的限制。例如当多个重载函数的第一个参数类型相同的时候,虽然后续的参数类型不同,是合法的C++重载函数,但是 any就不知道该转型为那一个,从而产生了编译错误:)本文就给出了几种解决这种难题的方法:)阅读全文>
发表于 @ 2007年10月23日 21:58:00|评论(loading...)|编辑|收藏
在上一篇文档中提到了分析函数参数数量的方法,现在就来解决更深层次的问题:这些数量的函数参数具体是什么类型的?本文就给出了一个比较统一的方法实现了采用C++模板语言分析出类域中的某个函数的参数具体是什么!阅读全文>
发表于 @ 2007年10月23日 21:55:00|评论(loading...)|编辑|收藏
在分析C++代码的时候,特别是分析C++函数(仿函数)的时候,若是能够分析出在一个名字空间(类域)里面的指定函数名称的函数的参数的数量将会是非常有用的:)这一章就对这个问题进行详细的分析。阅读全文>
发表于 @ 2007年10月23日 21:52:00|评论(loading...)|编辑|收藏
本文采用C++语言自身的模板语言实现了分析C++类结构的功能。C++类结构的内容包括:
1.类是否拥有指定参数的成员函数
2.类是否存在指定名称的成员函数
3.类是否存在指定名称的成员变量
4.类是否存在指定名称的子类(型)
阅读全文>
发表于 @ 2007年10月23日 21:49:00|评论(loading...)|编辑|收藏
本文介绍了采用C++的模板技术,可以实现C++语言自己分析自己的类层次结构:)可以分析出某个类的基类是什么,是不是很神奇啊;)阅读全文>
发表于 @ 2007年10月23日 21:45:00|评论(loading...)|编辑|收藏
介绍通过C++中的模板,可以表达为一种计算机语言的原理:)拥有整数加减乘除四则运算,选择结构和循环结构:)具备有通用编程语言具备的基本结构,从而构成了语言结构,本文只是解释前述结构的实现方式;)阅读全文>
发表于 @ 2007年10月23日 21:42:00|评论(loading...)|编辑|收藏
在上一章里面讨论了代码的自动生成机制,经常会遇到根据不同的类型选择不同的操
作的情况,也就是静态分派的问题。这就需要有一种机制用来识别不同的类型,在本章里面将会系统的讨论C++里面可用的类型识别问题。
阅读全文>
发表于 @ 2006年04月24日 19:55:00|评论(loading...)|编辑|收藏
在上一篇文章里面讨论了C++里面的代码生成技术,使用的是scatter,不过上一篇文章里面也提到了,前一篇文章里面讨论的代码生成模板scatter使用的类型串绝对不允许重复。其实上一篇中的scatter使用由重复的类型的类型串也是能够正常生成代码的,不过产生的代码却不能将类型重复的变量分辨出来,这样生成的代码就没有了什么实际意义,所以在这一章中将要解决的问题是:重新编写一个可以使用重复类型的类型串生成代码,并且能够采用一定的方法将这些生成的变量分辨出来。
阅读全文>
发表于 @ 2006年04月20日 09:41:00|评论(loading...)|编辑|收藏
这一章,我们将要开始的讨论C++里面的代码生成技术。说起代码生成技术,实际上这并不是C++的专利,作为C++子集的C语言早就已经使用了一定的代码生成技术,这就是C宏。我想C宏大家应该非常熟悉了吧,特别是能够实现带参数的宏使得大量的库利用这种技术来生成那些格式重复的代码,例如:微软的MFC库,跨平台的GUI库wxWidget,Boost库等等都使用了C宏。虽然C宏在这些库里面扮演了非常重要的角色,并且仍将扮演非常重要的角色,但是也不得不说:C宏存在着很大的问题。最基础的就是类型不安全性,这也是C++里面出现模板语素的一个比较重要的原因。更重要的是使用C宏生成的代码仅仅只是实现了简单的格式填空能力,并不能表达特定的算法。正是C宏的表达设计思想的不足限制了C宏的使用范围。这就是模板元发挥威力的时候了,见文章:)
阅读全文>
发表于 @ 2006年04月18日 12:04:00|评论(loading...)|编辑|收藏
在这一章里面对前面的模板元编程的过程进行了总结,其中静态循环过程只能够直接操纵整数类型,但是C++模板元自动化编程需要静态循环过程能够操作类型数据而不是整数,在这一章中就成功的实现了利用前一章里面的LOOP静态循环间接实现了这种类型的遍历过程。这种遍历过程的实现也是为下一章的自动生成的代码实现任意的操作而准备的。这是理论走向实践的关键所在。阅读全文>
发表于 @ 2006年04月17日 20:17:00|评论(loading...)|编辑|收藏