Ho un modello di classe e non riesco a capire come eseguire un'istanza di stile Variadic Template.VS2010 Esempio di modello variadico C++
Ecco il "codice" finora di quello che sto cercando:
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;
};
Ovviamente questo non compilerà :). L'idea è di creare una classe in grado di memorizzare i valori passati (se ce ne sono ... potrebbe avere solo _Classname/U definiti) sul costruttore in modo che possano essere recuperati in seguito per passare a m_Functor in un'altra funzione.
Primo: è possibile eseguire il modello Variadic in VS2010? Ricevo problemi di compilazione solo con la dichiarazione modello error C2143: syntax error : missing ',' before '...'
dalla riga template<typename _Classname, typename... Args>
In secondo luogo, è possibile eseguire ciò che sto cercando di realizzare? Grazie!
I nomi che iniziano con un trattino basso seguito da una lettera maiuscola, come '_Classname', sono riservati e non è necessario utilizzarli nel programma. –
oh .. riservato per cosa/chi? Ho provato a cambiare la mia convenzione di denominazione .. (cambia da m_, g_, ecc.) – BabelFish
Vedi [this] (http://stackoverflow.com/questions/228783/what-are-the-rules-about-using -un-sottolineatura-in-ac-identifier). – GManNickG