假设我有一个模板仿函数:
template <class U, class V>
struct Converter
{
V& operator() (const U&, V&) const;
};
我想在模板类和非模板类上“专门化”这个转换器:
template<>
struct Converter <template<class> MyTemplateClass, MyNonTemplateClass>
{
//I can't use MyTemplateClass without specializing it
//even if I don't need it to perform the computation
};
当然,这不行。你会如何取得类似的结果呢?
答案 0 :(得分:3)
您需要在template<class> MyTemplateClass
的模板声明中移动Converter
的类型。
template<class T>
struct Converter <MyTemplateClass<T>, MyNonTemplateClass>
{
//...
};