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

2 回答 2

4

你是这个意思吗?

template <template <class> class A, class B>
void f(A<B>)
{}
于 2014-02-17T08:22:43.243 回答
3

对于它的价值,clang 说:

error: template template parameter requires 'class' after the parameter list
template <template <class> A, class B>
                           ^
                           class 
于 2014-02-17T12:10:55.133 回答