读书人

怎样定义模板的模板?解决思路

发布时间: 2012-05-01 12:48:58 作者: rapoo

怎样定义模板的模板?
template <typename T> class A : private A1 <T>{
......
B <C <T>> b; // 这行编译错误 error C2143: syntax error : missing '>' before ';'
......
};

其中涉及的类定义为
template <typename T> class A1 { ... };
template <typename T> class B { ... };
template <typename T> class C : public D { ... };
class D { ... };

为什么不能这样定义 B <C <T>> b ?

[解决办法]
说的很清楚了嘛!两个大于号连在一起,被认为是流操作符了,要加空格!
[解决办法]
B <C <T> > b//我在看C++primer puls上面说过,两个大于号中间最好空格,你这样子的定义貌似没问题,但是你中间C <T>的T应该是具体的类型才行,当然可以是您自己定义的类型,一般B都为容器类,那样嵌套模板才比较合理

读书人网 >C++

热点推荐