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吗?
答案 0 :(得分:3)
问题是你不能拥有“变量模板”。这没有任何意义。
您需要创建具有特定类型的变量(即T
和evenT
的特定值),或执行以下操作:
template <class T, class evenT>
class SomeClass
{
map<int, FunctionHandler<T, evenT>* > lookup;
};