在模板类专门模板仿函数

时间:2014-04-04 11:47:53

标签: c++ templates functor

假设我有一个模板仿函数:

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
};

当然,这不行。你会如何取得类似的结果呢?

1 个答案:

答案 0 :(得分:3)

您需要在template<class> MyTemplateClass的模板声明中移动Converter的类型。

template<class T>
struct Converter <MyTemplateClass<T>, MyNonTemplateClass>
{
    //...
};