关于C++模板封装的问题(关于C++模板参数的声明)
C++模板参数的声明很有意思,除了基本类型,还有可选的就是class和typename,当然了,到C++泛型编程的高级话题的时候,就还可以加上什么的模板模板参数(没有记错的化,侯捷就是这么翻译的)。
很久以前就觉得C++中模板声明在语法上有点问题,不过只是一种感觉,但是具体问题在哪又说不上来。这几天看《计算机程序的构造和解释》和《Design by Contract原则与实践》,不知道是因为和同学讨论,还是自己灵感来了,估计两者都有,终于发现了这个不优美语法的具体形式。呵呵,实在难以想象,全世界这么多的大设计师,其中不乏优秀的程序语言设计师,居然一直就是用着这种蹩脚而不多大价值的声明。
看过C++模板编程或者写过的人应该都知道,C++模板编程中经常会在其中对参数声明中的class或者typename定义对象,然后使用这些对象的方法。问题就出在这里!
使用这些对象的方法是没有显示说明的。也就是说:如果我们不能看到这个模板类或者模板函数的源代码,我们就不知道在将这个模板类或者模板函数具体化的时候,我们传入的类型参数(即使class和typename