私はクラス テンプレートを持っていますが、Variadic Template スタイルのインスタンス化を実行する方法がわかりません。
これまでのところ、私が探している「コード」は次のとおりです。
template<typename _Classname, typename... Args>
class CFunctorStartExT
{
friend class CXXFactory;
protected:
template<typename U>
CFunctorStartExT(typename U& _functor, Args&... args) :
m_Functor(_functor),
m_args(args)
{
}
virtual bool ProcessLoop(CSomeClass* pThread)
{
return m_Functor(pThread, m_args);
}
protected:
_Classname& m_Functor;
Args... m_args;
};
明らかに、これはコンパイルされません:)。アイデアは、渡された値をコンストラクターに格納できるクラスを作成し (ある場合は、_Classname/U が定義されているだけかもしれません)、後で取得して別の関数で m_Functor に渡すことができるようにすることです。
最初: Variadic Template は VS2010 でも実行できますか? error C2143: syntax error : missing ',' before '...'
行からのテンプレート宣言だけでコンパイルの問題が発生していますtemplate<typename _Classname, typename... Args>
第二に、私が達成しようとしていることは実行できますか? ありがとう!