私は、STL C++ 0xコンテナ(ツールチェーンはGCC 4.7.0)でデバッグしています。インスタント化チェーンの印刷
STLのリバインドコードはほとんど理解できないため、std::vector<T>::reference
のようなtypedefのインスタンス化の完全なチェーンを何とか出力する必要があります。もちろん、T&
に解決されますが、__gnu_cxx
と他の内部構造で少なくとも7つの異なるテンプレートを通過する前に解決されます。
私はテンプレートエラーの場合に何が印刷されているかを期待していますが、の場合、すべてクラスはコンパイラによってインスタンス化されています。 可能ですか? GCCプラグイン、おそらく...
UPD:私は必要なすべてのテンプレートを手動でインスタンス化しました。いくつかのデバッグprintf文をGCCコード自体に挿入する点を除いて、これを自動的に行う良い方法はないと思われます。
てみました:?テンプレートのインスタンシエーションに関連するエラー(および「概念」の前 - まだ標準の一部ではありませんが)の作業に役立つようにもともと開発されていますが、それはあなたの価値があるかもしれません。私はアクティブな開発がしばらく前から止まっていたので、C++ 11固有の変更はないと思います。それ以外の場合は、独自の独自のテンプレートコンパイラを作成する必要があります。 –
dirkgently
ソースからGCCをビルドしましたか?私は多くのデバッグ・ダンプ・オプションを思い出しており、すべてのテンプレート・インスタンス化についてステータス・メッセージを得ることができるかもしれません。それは、しかし、ドライバをバイパスすることを含むかもしれません。 – Potatoswatter