VS2010 C++可变参数模板示例

Bab*_*ish 9 c++ templates variadic visual-studio-2010

我有一个类模板,我似乎无法弄清楚如何执行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;
};
Run Code Online (Sandbox Code Playgroud)

显然这不会编译:).我们的想法是创建一个类,它可以在构造函数中存储传入的值(如果有的话......它可能只有_Classname/U定义),以便稍后可以检索它们以传递给另一个函数中的m_Functor.

第一:Variadic模板甚至可以在VS2010中完成吗?我只是error C2143: syntax error : missing ',' before '...'从行中的模板声明得到编译问题template<typename _Classname, typename... Args>

第二,我想要完成的事情可以做到吗?谢谢!

Jam*_*lis 27

Visual C++ 2010不支持可变参数模板.

  • 这是否意味着微软的某些人进行了大量的复制和粘贴以获得有限的[元组类](http://msdn.microsoft.com/en-us/library/bb982837.aspx)? (3认同)
  • 为了完整起见,我眼中含泪:http://connect.microsoft.com/VisualStudio/feedback/details/463677/support-variadic-templates (3认同)