模板元程序
文章平均质量分 80
pandaxcl
这个作者很懒,什么都没留下…
展开
-
自动化C++程序设计
#if 0 在通常的编程问题中经常会遇到使用宏的情况,但是在很多的情况下C宏又非常的不方便,在自动化编程方面,使用宏就非常不方便了,甚至不可能了,下面我们将要考虑一个C宏不可以做到的事情如何使用模板元编程来实现。在本文中将会以一个具体的例子展示这种自动化方法,希望能够起到抛砖引玉的效果:) 首先考虑下面的问题,有下面的一个类Class,有几个基类成员;需要写一个函数print来输出所有原创 2006-04-14 18:38:00 · 2640 阅读 · 5 评论 -
自动化C++程序设计---基础篇_分析C++重载函数(2)--分析函数参数的种类
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt原创 2007-10-23 21:55:00 · 1872 阅读 · 0 评论 -
自动化C++程序设计---分析C++类层次
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt原创 2007-10-23 21:45:00 · 2409 阅读 · 1 评论 -
自动化C++程序设计---基础篇_分析C++重载函数(1)--分析函数参数的数量
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt原创 2007-10-23 21:52:00 · 1995 阅读 · 0 评论 -
自动化C++程序设计---分析C++类结构
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt原创 2007-10-23 21:49:00 · 3416 阅读 · 0 评论 -
自动化C++程序设计---C++里的模板语言
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt原创 2007-10-23 21:42:00 · 2973 阅读 · 0 评论 -
C++自动化(模板元)编程基础与应用(6)
#if 0 在上一章里面讨论了代码的自动生成机制,经常会遇到根据不同的类型选择不同的操作的情况,也就是静态分派的问题。这就需要有一种机制用来识别不同的类型,在本章里面将会系统的讨论C++里面可用的类型识别问题。 最常见的有下面几种: (1)根据模板参数需要精确匹配类型来识别类型 (2)根据隐式自动转型来判断类型是否可以自动转型,从而可以判断是某个基类的派生类。原创 2006-04-24 19:55:00 · 2067 阅读 · 10 评论 -
C++自动化(模板元)编程基础与应用(3)
#if 0 在前面的两章里面讨论了C++模板元作为C++的一门二级语言的问题,并给出了常用的程序设计语言的语素的实现,是一个完备的体系。总的来说,前面的章节里面是采用了下面的方法来实现这些语素的: (1)整数计算结果通过enum变量进行保存 (2)类型计算结果通过typedef进行保存 (3)?:运算符可用来实现静态整型表达式的选择功能 (4)模板特化可用来实现静态类原创 2006-04-17 20:17:00 · 2071 阅读 · 3 评论 -
C++自动化(模板元)编程基础与应用(4)
#if 0 这一章,我们将要开始的讨论C++里面的代码生成技术。说起代码生成技术,实际上这并不是C++的专利,作为C++子集的C语言早就已经使用了一定的代码生成技术,这就是C宏。我想C宏大家应该非常熟悉了吧,特别是能够实现带参数的宏使得大量的库利用这种技术来生成那些格式重复的代码,例如:微软的MFC库,跨平台的GUI库wxWidget,Boost库等等都使用了C宏。虽然C宏在这些库里面扮演了原创 2006-04-18 12:04:00 · 1757 阅读 · 0 评论 -
C++自动化(模板元)编程基础与应用(2)
#if 0 在上一篇文章的最后提到了一个相对来说通用一点的LOOP循环,下面还是将上一篇文章中的LOOP循环代码复制如下:#endif#ifdef CODE1#include templatesize_t n> void print(){//这里的n是编译期的结果,可以用来定义数组的 int a[n+1];//这么做是为了证明n是编译期常量 std::cout s原创 2006-04-16 22:01:00 · 1836 阅读 · 3 评论 -
C++自动化(模板元)编程基础与应用(1)
#if 0 大家好,在这一类的文章中将会系统的介绍模板元编程的相关基础知识。最主要的是这类文章的目的就是让不熟悉模板元的C++迷们尽快的进入到模板元的奇妙世界里面来,所以每一篇文章都将只会讨论一个话题,尽可能的把这个话题说清楚明白就可以了。 好了,言归正传。大家都知道C++是一们计算机语言,这一点也没错,但是你知道C++里面还包含了另外一种子语言么?呵呵,恐怕知道的人就不多了,会用的人原创 2006-04-16 13:45:00 · 3079 阅读 · 8 评论 -
C++自动化(模板元)编程基础与应用(5)
#if 0 在上一篇文章里面讨论了C++里面的代码生成技术,使用的是scatter,不过上一篇文章里面也提到了,前一篇文章里面讨论的代码生成模板scatter使用的类型串绝对不允许重复。其实上一篇中的scatter使用由重复的类型的类型串也是能够正常生成代码的,不过产生的代码却不能将类型重复的变量分辨出来,这样生成的代码就没有了什么实际意义,所以在这一章中将要解决的问题是:重新编写一个可以使原创 2006-04-20 09:41:00 · 1877 阅读 · 0 评论 -
自动化C++程序设计---基础篇_分析C++重载函数(3)--存在的问题
/*<![CDATA[*/body { color: #000; background-color: #fff; margin: 0px 10%; min-width: 720px; font-family: 新宋体; counter-reset: chapter section subsection subsubsection paragraph lchapt原创 2007-10-23 21:58:00 · 2178 阅读 · 4 评论