1

時々、私はオペレーターのオーバーロードの間違いを犯し、g++ が不可解なコンパイラ エラー メッセージの気のめいるような量を生成する原因となります。次の例を考えてみましょう。

int someValue ;
vector <vector <int> > 2d ;
while(2d [i] > someValue) someFunction();

明らかに、「2d」ベクトルの 2 番目のインデックスがありません。残念なことに、g++ は「大なり」演算子の一致が見つからなかったことを簡潔に報告する代わりに、標準ライブラリの奥深くに埋もれているいくつかの本当に厄介なものを含め、比較操作に部分的に一致するすべてのオーバーロード候補をおぞましいほど詳細にリストします。

なぜこれがオーバーロードの失敗を処理するための好ましい方法なのかについて、誰かが洞察を提供できますか?、このコンパイラ出力を制限または削減するオプションはありますか?、thx.

4

1 に答える 1

1

STLFiltを試してください。ただし、しばらく更新されません。

優れた IDE には、この煩わしい余分なエラーをフィルタリングする機能があります。私が Eclipse を使用していたときは、非常に優れたフィルタリング機能がありましたが、現在はどのように機能するのかわかりません。

私の個人的なアプローチは、理解できないものはすべてスキップして、理解できるエラーに集中することです ;)

于 2012-09-26T22:10:49.730 に答える