怎样定义模板的模板?
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都为容器类,那样嵌套模板才比较合理