私はクラステンプレートを持っています。私はVariadic Templateスタイルインスタンシエーションの実行方法を理解できないようです。明らかにこれは:)コンパイルされませんVS2010 C++バリデーションテンプレートの例
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>
第2に、達成しようとしていることができますか?ありがとう!
'_Classname'のようにアンダースコアで始まる大文字の名前は予約されており、プログラムで使用しないでください。 –
ああ..何のために予約?/ who?私は私の命名規則を変更しようとしています..(m_、g_などからの変更) – BabelFish
[this](http://stackoverflow.com/questions/228783/what-are-the-rules-about-usingを参照してください。 - アンダースコアのAC識別子)。 – GManNickG