c++ - VS 2012 中的可变参数模板(Visual C++ 2012 年 11 月 CTP)

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

我安装了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}; 似乎也不起作用,我确信这是有效的统一初始化。

最佳答案

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

Toolchain

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

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

关于c++ - VS 2012 中的可变参数模板(Visual C++ 2012 年 11 月 CTP),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238408/

相关文章:

C++11 对象指针列表的初始化

c++ - 从配置文件中读取变量

c++ - map 的查找功能有困难

c++ - utf-8 中 std::string 的子字符串? C++11

c++ - 为什么以及何时应调用 _fpreset()?

visual-c++ - GNU C++ 和 Microsoft Visual C++ 之间的差异

c++ - 使用基于范围的 for 循环以相反的顺序打印 vector

C++ nonlohmann json读取子对象

c++ - _mm_mul_epu32 与 _mm_mul_epi32

c++ - 创建单链表时正确设置指针的问题