0

当我尝试创建一个值类型为指向模板函子的指针的 std::map 时,Visual Studio 出现问题。我在这里做违法的事吗?

// 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?

4

1 回答 1

3

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

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

template <class T, class evenT>
class SomeClass
{
    map<int, FunctionHandler<T, evenT>* > lookup;
};
于 2011-01-22T00:06:36.540 回答