自动格式化程序将>>>更改为>>

时间:2018-10-22 11:45:47

标签: c++ visual-studio-code vscode-settings autoformatting

我对VScode的C ++扩展有疑问。每当我定义由vector<vector<int> >之类的向量组成的矩阵并使用自动格式化程序时,都会将代码更改为vector<vector<int>>,这会导致编译器错误。

对此有什么解决办法吗?

2 个答案:

答案 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或更高版本。