У меня есть шаблон класса, и я не могу понять, как выполнить создание экземпляра стиля 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 даже в VS2010? У меня возникают проблемы с компиляцией только из-за ошибки объявления шаблона C2143: синтаксическая ошибка: отсутствует ',' до '...'
из строки template
Во-вторых, можно ли сделать то, что я пытаюсь достичь? Спасибо!