0

値の型がtemplate-functorへのポインターであるstd::mapを作成しようとすると、VisualStudioが中断します。私はここで違法なことをしていますか?

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

問題は、「変数テンプレート」を作成できないことです。それは意味がありません。

T特定のタイプ(つまり、との特定の値evenT)で変数を作成するか、次のようなことを行う必要があります。

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