【问题标题】:Variadic Template in VS 2012 (Visual C++ November 2012 CTP)VS 2012 中的可变参数模板(Visual C++ 2012 年 11 月 CTP)
【发布时间】:2012-10-25 15:51:29
【问题描述】:

我安装了Visual C++ Compiler November 2012 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);
}

然后我按 F6 在 IDE 中构建。我在第 4 行收到此错误

error C2143: syntax error : missing ',' before '...'

编译列表“可变参数模板”,所以我相信这应该可行。我确实理解智能感知可能不正确,但是“编译器”应该可以工作。我不能从 IDE 构建吗?我必须在某处启用某些东西吗? int i{4}; 似乎也不起作用,我确信这是有效的统一初始化。

【问题讨论】:

    标签: c++ visual-c++ c++11 visual-c++-2012


    【解决方案1】:

    在项目属性中,确保选择 Microsoft Visual C++ Compiler Nov 2012 CTP

    新的工具链不会替换现有的 Visual C++ 2012 工具链,默认不启用。它与现有工具链并行安装。

    如果你选择了新的工具链,你的程序将不会出错。

    【讨论】:

    • 谢谢詹姆斯。哇,你还截屏了
    • VS2012 版本 11.0.60610.01 更新 3 仍然没有编译问题中的示例,尽管选择“Visual Studio 2012 (v110)”作为平台工具集。
    • @mloskot:v110 工具集不支持可变参数模板,而且永远不会。您要么需要使用 11 月 CTP(在问题中链接),要么最好使用新发布的 Visual Studio 2013 预览版。
    • @JamesMcNellis 我从未使用过 VS2012 CTP,我对 2012 感到困惑。确实,那里的实际工具集是 v120。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2013-01-11
    • 2013-01-03
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 2013-01-20
    相关资源
    最近更新 更多