2012-05-24 3 views
5

テンプレートを使用したコンパイルエラーは、しばしばあいまいであり、テンプレートに精通していないと解読できません。多くの場合、専門のプログラマーがこれらのことに不快感を与えるかもしれません。私たちの大部分が何度もそのピンチを感じていると確信しています。テンプレートを使用すると、より正確な診断エラーメッセージが表示されますか?

私はC++標準のみ方法または診断メッセージが提供されなければならないものを病気に形成されたプログラムのための診断ではなくを提供するために、実装を義務付け理解しています。
しかし、テンプレートの場合には(特に)解読できないというこの問題を克服するために、標準化委員会が定めたガイドラインはありますか?これは今まで議論の場となっていますか? また、この問題について何かを行っている、または計画している主流の実装ですか?

質問は非常に公開されていますが、SO C++コミュニティが最もアクティブなC++コミュニティの1つになっています。私は確かにどこかの誰かがこのことを考えなければなりません。また、(私が知っている)標準委員会メンバーのいくつかがC++タグに積極的に参加しています。

+0

clang ++はこのための良いツールです。エラーメッセージは、g ++やVS2005から覚えているものよりはるかに優れています(私は以来、広範囲にVSを使用していません)。 –

+1

あなたの質問に対する答えは[コンセプト](http://en.wikipedia.org/wiki/Concepts_%28C%2B%2B%29)です。残念ながら、彼らはC++ 11の準備ができていませんでした。 –

答えて

5

質問。

まず、はい、主流の実装はそれについて何かしています。 g ++やmsvcの最優先事項ではないかもしれませんが、これらは主流の実装ではありません。それはclang(http://clang.llvm.org/diagnostics.htmlを参照)の後ろの設計目標の1つであり、少なくともある時点で、IntelはmsvcよりもiC++のセールスポイントとして優れたテンプレートエラーを列挙しました。

第2に、標準化委員会のメンバーがこれについて詳しく議論し、コンセプトが答えの大きな部分であることにほとんど同意しました。これは、概念がC++ 11から削除されて以来、標準。

3

特に、人々がメタクラスを使ってトリッキーなことをするようになると、それは間違いなく問題です。私が知っている唯一のツールは、「STL関連の診断に重点を置いて、長時間にわたるC++のエラーメッセージと警告メッセージを簡素化および/または再フォーマットする」stlfiltです。

関連する問題