【发布时间】:2013-01-01 20:03:37
【问题描述】:
我想用简单的 C++ 语法创建一个简单的工厂方法:
void *createObject(const char *str,...)
{
if(!strcmp("X",str))
return new X(...);
}
我无法弄清楚这个的语法。我一直在研究模板元编程并使用 mpl::vectors,但我不确定如何传递这种语法。如果可能的话,我想真正避免使用 C va_lists,并采用像上面那样的简洁语法。
【问题讨论】:
-
由于 Visual Studio 2012 甚至不支持可变参数模板,我正在考虑在编译时使用模板元编程进行实例化,然后以某种方式从 mpl 向量创建某种仿函数。
-
November CTP 增加了对 variadic templates 的支持,请在 aka.ms/vc-ctp 获取