2014-02-17 48 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