VScodeのC++拡張機能に問題があります。 vector<vector<int> >
のようなベクトルで構成される行列を定義し、自動フォーマッターを使用するたびに、コードがvector<vector<int>>
に変更され、コンパイラエラーが発生します。
これに対する解決策はありますか?
VSCode C++拡張機能は、ドキュメントのフォーマットにclang-formatを使用します。 C++ 11をサポートしていない古いコンパイラにこだわっている場合は、次の行でワークスペースに。clang-formatファイルを追加するだけです:
Standard : Cpp03
その他のフォーマットオプションについては、次のリンクを参照してください。 https://clang.llvm.org/docs/ClangFormatStyleOptions.html
コンパイラエラーは、>>
は、2つの連続したテンプレート引数リストの区切り文字ではなく、右シフト演算子として解釈されます。 C++ 11以前は、これは言語がパーサーの動作を要求する方法でした。ただし、C++ 11では、これを防ぐために例外が追加されました。詳細については、 この回答 を参照してください。
最適な解決策は、コンパイラをC++ 11以降にアップグレードすることです。