2014-02-17 102 views
2

下面的代码不能用VC++ 2013 CTP编译。为什么最简单的模板模板不能编译?

template <template <class> A, class B> 
void f(A<B>) 
{} 

输出如下:

error C2988: unrecognizable template declaration/definition 
error C2059: syntax error : '<L_TEMPLATEDECL>' 
error C2065: 'A' : undeclared identifier 
error C2065: 'B' : undeclared identifier 
error C2988: unrecognizable template declaration/definition 
error C2059: syntax error : ')' 

回答

4

你的意思呢?

template <template <class> class A, class B> 
void f(A<B>) 
{} 
+0

是。这正是我想要的。谢谢。 – xmllmx

3

对于它实在值得,铛说:

error: template template parameter requires 'class' after the parameter list 
template <template <class> A, class B> 
         ^
          class 
+0

这很有帮助,因为'template