我有一个类模板,但我似乎无法弄清楚如何执行 Variadic 模板样式实例化。
到目前为止,这是我正在寻找的“代码”:
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>
行
其次,我想完成的事情能完成吗?谢谢!
最佳答案
Visual C++ 2010 不支持可变参数模板。
关于c++ - VS2010 C++ 可变参数模板示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4763736/