Почему самый простой шаблон-шаблон не может быть скомпилирован?
Следующий код не может быть скомпилирован с 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 : ')'
2 ответа
Решение
Вы имеете в виду это?
template <template <class> class A, class B>
void f(A<B>)
{}
Для чего это стоит, Clang говорит:
error: template template parameter requires 'class' after the parameter list
template <template <class> A, class B>
^
class