0

GCC 4.7.2 を使用しています。私のコードは、テンプレート、STL、およびブーストの使用にかなり重くなっています。コンパイル時に、boost/STL 機能から派生した、または使用するクラスまたは関数にエラーがあると、クラス/関数の非常に恐ろしい戻り値の型や関数引数を示すエラー メッセージが表示されます。

私の質問:

エラーメッセージに表示される戻り値の型がコードに入力したものに対応するか、少なくともよりわかりやすくなるように、Boost/STL 型を含む GCC 警告/エラー用の prettyprint 型はありますか?

私はこの質問を簡単にざっと読みましたが、それはGCCではなくGDBに関するものです...

Haskell でこのきれいなプリンターにも出くわしましたが、それは構造を追加するだけで、(ほとんど)不要な詳細を取り除くわけではありません...

他の提案はありますか?

4

2 に答える 2

2

同様の質問をしたところ、誰かがgccfilterを試すように勧めました。これは、g++ の出力を再フォーマットして色付けし、短縮し、フル パス名を非表示にするなど、さまざまな機能を備えた Perl スクリプトです。

実際、その提案はこの質問にも非常によく答えます。不要な詳細を隠し、STL とブーストの両方のタイプをきれいに印刷することができます。だから:これも答えとしてここに残します。

私が見た唯一の欠点は、スクリプト内から g++ を呼び出す必要があることです (つまり、その時点で g++ にパイプすることはできません)。これは簡単に修正できると思いますが、いずれにせよ比較的小さな問題です。

于 2012-10-25T10:50:22.773 に答える
1

David Abrahms & Alesky Gurtovoy による「C++ Template Metaprogramming」で述べられているように、STLfiltを試すことができます。

この本には、テンプレート メッセージの診断に関する章が含まれています。STLFilt /showback:N出力を簡素化するために、 を使用してコンパイラのバックトレース マテリアルを削除することをお勧めします。

于 2012-10-25T10:40:26.957 に答える