pcc++ 预编译语言(编辑中)
pcc++预编译语言( c++ pre-compilation language ) ,是一种面向类的、存在于预编译期的解释语言。专门用来生成c++代码。
预编译期语言,大大地提高了程序的复用性,提高了运行时效率。
pc++包括宏机制和模板机制。
c++ 编译期编程工具:
template 编译器整数计算 typedefs
1 templates 更明确地是指 template speciclization(模板特化)--提供编译期间的 if 叙述。一如先前见过的length ,特化版本能够在 typelists和其它型别之间形成差异。
2 integer calculations 提供真实的数值计算能力。用以从类转化为数值。所有的编译期数值都是不可变的。一旦你为它定义了一个整数常数,例如一个枚举值,就不能再改变它。
3 typedefs 用来引进“有名类型常数( named type constants ) 它们是定义之后就被冻结。
4 递归。对应于c++ 语言中的函数。
类型识别机制
sizeof()
继承
pcc++的继承表现通过递归来实现。代码的形式类似c++的重载。
derived to-base 类型转换通过模板偏特化来实现。
1 、最简单的pcc++
在矩阵转置(matrix inversion)的运算中,通常需要定义两个大小相同而维数交换的数组:
char original[3][2];
char target[2][3];
一旦original维数发生变化,target的维数也需要修改。使用sizeof()可使代码表现出更好的适应性: char target[2][3];
char original[3][2];
char target[ sizeof(a) ];
sizeof()有惊人的威力,你可以把sizeof用在任何表达式身上。sizeof()在编译直接
传回表达式结果的大小。sizeof()可以感知重载( overloading )、模板具现( template instantiation
)、 转换规则( conversion rules ),或任何可发生于c++表达式身上的机制。
char target[ sizeof(a) ];
范晨鹏
------------------
软件是一种态度
成功是一种习惯