为什么带有指向模板函子的指针作为value_type不起作用?

时间:2011-01-22 00:03:59

标签: c++ templates functor stdmap

Visual Studio borks当我尝试创建一个std :: map时,值类型是指向模板函数的指针。我在这里做违法的事吗?

// Functor prototype
template< class T, class evenT>
class FunctionHandler {};

// std::Map definition
template <class T, class evenT>
map<int, FunctionHandler<T, evenT>* > lookup;

有人可以告诉我这是不是一个错误(为什么这个错误)或者它只是Visual Studio吗?

1 个答案:

答案 0 :(得分:3)

问题是你不能拥有“变量模板”。这没有任何意义。

您需要创建具有特定类型的变量(即TevenT的特定值),或执行以下操作:

template <class T, class evenT>
class SomeClass
{
    map<int, FunctionHandler<T, evenT>* > lookup;
};