Здравствуйте, NikolayVoronetskiy, Вы писали:
NV>>>Задача в том, чтобы таким же образом специализировать шаблон класса, грубо говоря:
LC>>Может нужно не шаблон класса специализировать, а специализировать шаблонную функцию-член класса?
NV>Нет к сожалению мне нужна не функция, а мне нужно следующее если говорить конкретно:
NV>NV>template<class C, class T> class Bar { typedef T Type; };
NV>template<class C, template <class> class T> class Bar { typedef T<C> Type; };
NV>
Возможно, все проще?
// The primary template
template<class T>
class Bar
{
public:
typedef T Type;
};
// A partial specialization for templates with single type parameter
template<class C, template <class> class T>
class Bar<T<C> >
{
public:
typedef T<C> Type;
};
// Use cases
class TestClass { };
template<class T> class TestTemplate { };
Bar<TestClass>::Type a;
Bar<TestTemplate<int> >::Type b;