標準C++におけるDbC
2006/04/15
それでは、標準C++
あるいは現場で使用しているC++
環境ではどのように契約を書くべきでしょうか。多くのC++プログラマが挑戦している命題ですので、インターネットを検索すれば様々なサンプルを手に入れることができます。
皮肉なことに、もっともよい解決策のうちのひとつがD言語の公式サイトで示されています。これはD言語におけるDbCとC++のDbCを比較するページであり、D言語のDbCのほうが遙かに優れていると結論づけています。しかし、ここで示されているC++のコードは標準C++でDbCへの挑戦する非常によいヒントになるでしょう。このページは私たちにDbC
の実現のためにはテンプレートなどC++
の多くのテクニックを駆使しなければならないことを教えてくれます。
同様の試みはJava
でも行われています。現実的な問題として、プログラミング言語がDbC
を仕様として実装しなければ、C++
やJava
でDbC
を実現することは難しいといえるでしょう。しかし、DbCへの憧れは、assertの正しい使用への意識をもたらします。私たちはしばしばassertの重要性を忘れることがあるからです。