读书人

模板语法糖,该如何处理

发布时间: 2012-04-15 18:39:21 作者: rapoo

模板,语法糖
突然感觉,模板只是一勺语法糖。它的作用只是在写一些有共同结构的代码的时候,省掉一些手敲的工作,本质上和宏一样。
那么,有没有像宏预处理器类似的东西,生成模板具现化的代码?

[解决办法]
模板比宏算是进了一步了吧.
宏的目的仅仅是实现文本替换.以及一些文本层次的编译时预处理
模板最初的目的也仅仅是为宏加上更强大的类型机制,以代替宏的做用.但经过多年的发展,模板正向着代码生成器的角色转变.虽然现在只是手动的,但在思想上却比完全手工写代码进了一大步.

另外,代码生成器的终极目标应该是自动的,智能的代码生成器.也就是说,应该是人提需求,机器生成代码.虽然模板和这个差距很大,但也算是向这个方向前进的一种努力.
[解决办法]

探讨
引用:

这个和宏不一样的。对于生成类型以后才能知道的东西,宏无能为力。例如:
判断数组的字节大小是否过小,是的话则通过编译,否则不允许编译:
float a[MAX_LEN];// MAX_LEN 是由用户提供的宏。要求sizeof(a)超过另一个宏MAX_LENBYTES
也许你会说,我用#if-#error不就可以了嘛。。。你自己可以试一下,不行的。
这里只能用模……

读书人网 >C++

热点推荐