Как правильно передавать шаблон в качестве параметра другому шаблону?
template < typename T >
struct A{};
template < template < typename > class C >
struct B{};
typedef A < int > A_int;
typedef A < float > A_float;
typedef B < A_float > B_A_float; // error C3200: 'A_float' : invalid template argument for template parameter 'C', expected a class template
typedef B < A < float > > B_A_float; // error C3200: 'A
необходимо использовать в шаблоне разные специализации шаблона, но компилятор позволяет вставить только сам класс
Ответ
Если Вы хотите просто передать шаблону какой-то тип, то в качестве параметра шаблона надо использовать параметр-тип:
template
foo
А если же надо передать шаблону шаблон, то параметром должен быть параметр-шаблон:
template class X> struct foo { X
foo
Комментариев нет:
Отправить комментарий