web-dev-qa-db-ja.com

自動フォーマッターの変更>> to >>

VScodeのC++拡張機能に問題があります。 vector<vector<int> >のようなベクトルで構成される行列を定義し、自動フォーマッターを使用するたびに、コードがvector<vector<int>>に変更され、コンパイラエラーが発生します。

これに対する解決策はありますか?

25
ErebosM

VSCode C++拡張機能は、ドキュメントのフォーマットにclang-formatを使用します。 C++ 11をサポートしていない古いコンパイラにこだわっている場合は、次の行でワークスペースに。clang-formatファイルを追加するだけです:

Standard : Cpp03

その他のフォーマットオプションについては、次のリンクを参照してください。 https://clang.llvm.org/docs/ClangFormatStyleOptions.html

41
Nishant Singh

コンパイラエラーは、>>は、2つの連続したテンプレート引数リストの区切り文字ではなく、右シフト演算子として解釈されます。 C++ 11以前は、これは言語がパーサーの動作を要求する方法でした。ただし、C++ 11では、これを防ぐために例外が追加されました。詳細については、 この回答 を参照してください。

最適な解決策は、コンパイラをC++ 11以降にアップグレードすることです。

28
Max Langhof