自动格式化程序更改 > > 到 >>

Auto formatter changes > > to >>

我在使用 VScode 的 C++ 扩展时遇到问题。每当我定义一个由像 vector<vector<int> > 这样的向量组成的矩阵并使用自动格式化程序时,它会将代码更改为 vector<vector<int>>,这会导致编译器错误。

有什么解决办法吗?

编译器错误是 >> 被解释为右移运算符,而不是两个连续的模板参数列表分隔符。在 C++11 之前,这是语言要求解析器工作的方式。但是,在 C++11 中,添加了一个异常来防止这种情况发生。有关详细信息,请参阅 this answer

最好的解决方案是将编译器升级到 C++11 或更高版本。

VSCode C++ 扩展使用 clang-format 格式化文档。如果你坚持使用不支持 C++11 的旧编译器,只需在你的工作区中添加一个 .clang-format 文件,其中包含以下行:

Standard : Cpp03

更多格式选项,请参考以下内容link: https://clang.llvm.org/docs/ClangFormatStyleOptions.html