2008-08-26

コンセプトをまともに使うために

コンセプトの目的のひとつに、テンプレートのエラーを何とか読みやすいものにしようということがある。しかし、ConceptGCCのエラーメッセージはさっぱり分からない。

まず、エラーメッセージを改善しなければならない。具体的には、コンセプトの要求を満たさなかった場合、なんと言う名前のコンセプトの、どの要求を満たしていないのか、エラーで知らせるべきだ。ConceptGCCは何と言うコンセプトを満たしていないとしか言わない。これはとても面倒だ。何しろ、コンセプト自体の記述を間違えても、文法エラー以外は教えてくれないのだから。

よいリファレンスマニュアルが必要だ。STLのすべてのテンプレートなクラスやアルゴリズムに対して、なんと言うコンセプトを満たさなければならないのか明記してあるマニュアルが必要だ。たとえば、std::sortを実装するのに必要なコンセプトを列挙してあるだとかだ。そういうマニュアルがないと、プログラマは仕様書を片手にプログラミングするハメになるだろう。残念なことに、これらの需要を知り、誰かがマニュアルを書いて出版するのは、相当時間がかかると思われる。規格制定から五年はかかるのではないだろうか。それまでは、我々プログラマは規格書を片手にプログラミングしなければならない。

エディタの助けも必要だ。たとえば、Visual Studioのインテリセンスで、あるウインドウに、現在選択している関数テンプレートをConstrained templatesとするのに必要な要求を、すべて列挙するような機能だ。

No comments: