VS 2012中的Variadic模板(Visual C++ 2012年11月CTP)

13 c++ visual-c++ c++11 visual-c++-2012

我安装了Visual C++编译器2012年11月CTP并创建了一个C++控制台项目.我写了这个

template<typename T>
void Test(T value){
}
template<typename T, typename... Args>
void Test(T value, Args... args){
    Test(value);
    Test(args...);
}

int main(){
    Test(1,2,3);
}
Run Code Online (Sandbox Code Playgroud)

然后我按下F6来构建IDE.我在第4行得到了这个错误

error C2143: syntax error : missing ',' before '...'
Run Code Online (Sandbox Code Playgroud)

编译列表"可变参数模板",所以我认为这应该工作.我知道intellisense可能是不正确的,但'编译器'应该工作.我可以不用IDE构建吗?我必须在某个地方启用某些东西吗?int i{4};似乎也没有工作,我相信这是有效的统一初始化.

Jam*_*lis 37

在项目属性中,确保选择Microsoft Visual C++编译器2012年11月CTP:

工具链

新工具链不会替换现有的Visual C++ 2012工具链,默认情况下不会启用它.它与现有的工具链并排安装.

如果选择新的工具链,程序将编译而不会出错.

  • @mloskot:v110工具集不支持可变参数模板,永远不会.您需要使用11月CTP(在问题中链接),或者最好是新发布的Visual Studio 2013 Preview. (4认同)
  • 谢谢詹姆斯.哇,你甚至做了截图 (3认同)