我对VScode的C ++扩展有疑问。每当我定义由vector<vector<int> >
之类的向量组成的矩阵并使用自动格式化程序时,都会将代码更改为vector<vector<int>>
,这会导致编译器错误。
对此有什么解决办法吗?
答案 0 :(得分:41)
VSCode C ++扩展使用clang-format来格式化文档。如果您使用的是不支持C ++ 11的旧编译器,只需在工作区中添加以下行的 .clang-format 文件:
Standard : Cpp03
有关更多格式选项,请参阅以下链接: https://clang.llvm.org/docs/ClangFormatStyleOptions.html
答案 1 :(得分:28)
编译器错误是>>
被解释为右移运算符,而不是两个连续的模板参数列表定界符。在C ++ 11之前,这是该语言要求解析器起作用的方式。但是,在C ++ 11中,添加了一个例外来防止这种情况。有关更多信息,请参见this answer。
最好的解决方案是将编译器升级到C ++ 11或更高版本。