
C++Template
文章平均质量分 77
Augusdi
让时间验证一切,让时间验证我。感谢大家的无私帮助,我愿以同样的态度回馈我热情的朋友,用我们的热忱开创美好未来!
展开
-
C++自动化(模板元)编程基础与应用(3)
#if 0 在前面的两章里面讨论了C++模板元作为C++的一门二级语言的问题,并给出了常用的程序设计语言的语素的实现,是一个完备的体系。总的来说,前面的章节里面是采用了下面的方法来实现这些语素的: (1)整数计算结果通过enum变量进行保存 (2)类型计算结果通过typedef进行保存 (3)?:运算符可用来实现静态整型表达式的选择功能 (4)模板特化可用来实现静态类型表达式的选择功能 (5)模板递归可用来实现静态循环,循环变化元素只能够是整数...转载 2022-02-01 23:19:53 · 1479 阅读 · 4 评论 -
C++自动化(模板元)编程基础与应用(2)
#if 0 在上一篇文章的最后提到了一个相对来说通用一点的LOOP循环,下面还是将上一篇文章中的LOOP循环代码复制如下:#endif#ifdef CODE1#include <iostream>template<size_t n> void print(){//这里的n是编译期的结果,可以用来定义数组的 int a[n+1];//这么做是为了证明n是编译期常量 std::cout << sizeof(a)/size...转载 2022-02-01 23:08:35 · 697 阅读 · 0 评论 -
C++自动化(模板元)编程基础与应用(3)
#if 0 在前面的两章里面讨论了C++模板元作为C++的一门二级语言的问题,并给出了常用的程序设计语言的语素的实现,是一个完备的体系。总的来说,前面的章节里面是采用了下面的方法来实现这些语素的: (1)整数计算结果通过enum变量进行保存 (2)类型计算结果通过typedef进行保存 (3)?:运算符可用来实现静态整型表达式的选择功能 (4)模板特化可用来实现静态类型表达式的选择功能 (5)模板递归可用来实现静态循环,循环变化元素只能够是整数...转载 2022-02-01 23:14:42 · 1444 阅读 · 0 评论 -
C++自动化(模板元)编程基础与应用(4)
#if 0 这一章,我们将要开始的讨论C++里面的代码生成技术。说起代码生成技术,实际上这并不是C++的专利,作为C++子集的C语言早就已经使用了一定的代码生成技术,这就是C宏。我想C宏大家应该非常熟悉了吧,特别是能够实现带参数的宏使得大量的库利用这种技术来生成那些格式重复的代码,例如:微软的MFC库,跨平台的GUI库wxWidget,Boost库等等都使用了C宏。虽然C宏在这些库里面扮演了非常重要的角色,并且仍将扮演非常重要的角色,但是也不得不说:C宏存在着很大的问题。最基础的就是类型..转载 2022-02-01 23:13:35 · 1580 阅读 · 0 评论 -
C++自动化(模板元)编程基础与应用(5)
#if 0 在上一篇文章里面讨论了C++里面的代码生成技术,使用的是scatter,不过上一篇文章里面也提到了,前一篇文章里面讨论的代码生成模板scatter使用的类型串绝对不允许重复。其实上一篇中的scatter使用由重复的类型的类型串也是能够正常生成代码的,不过产生的代码却不能将类型重复的变量分辨出来,这样生成的代码就没有了什么实际意义,所以在这一章中将要解决的问题是:重新编写一个可以使用重复类型的类型串生成代码,并且能够采用一定的方法将这些生成的变量分辨出来。 那么该如何...转载 2022-02-01 23:12:44 · 664 阅读 · 0 评论 -
C++自动化(模板元)编程基础与应用(6)
#if 0 在上一章里面讨论了代码的自动生成机制,经常会遇到根据不同的类型选择不同的操作的情况,也就是静态分派的问题。这就需要有一种机制用来识别不同的类型,在本章里面将会系统的讨论C++里面可用的类型识别问题。 最常见的有下面几种: (1)根据模板参数需要精确匹配类型来识别类型 (2)根据隐式自动转型来判断类型是否可以自动转型,从而可以判断是某个基类的派生类。 (3)给每一个类型都追加一个额外的模板参数用来表示不同的类型,一般都是用不同的数字...转载 2022-02-01 23:11:08 · 486 阅读 · 0 评论 -
C++自动化(模板元)编程基础与应用(1)
#if 0 大家好,在这一类的文章中将会系统的介绍模板元编程的相关基础知识。最主要的是这类文章的目的就是让不熟悉模板元的C++迷们尽快的进入到模板元的奇妙世界里面来,所以每一篇文章都将只会讨论一个话题,尽可能的把这个话题说清楚明白就可以了。 好了,言归正传。大家都知道C++是一们计算机语言,这一点也没错,但是你知道C++里面还包含了另外一种子语言么?呵呵,恐怕知道的人就不多了,会用的人就更少了。但是既然经过了这么多年的发展,C++语言里面出现了这种子语言(模板)自然有它的根源的...转载 2022-01-30 18:51:04 · 850 阅读 · 0 评论