株式会社エス・スリー・フォー

1.2 Tools.h++ および C++ の理論

C++ に使い慣れているユーザならば、違和感を持たずに Tools.h++を使えるでしょう。Tools.h++ は C++ クラスライブラリなので、以下のような C++ 言語と同じ設計目標を持っています。これらの共通目標には、以下のものがあります。

効率性-

一般に、Tools.h++ には機能を使用しないユーザに不都合を与えるような機能は含まれていません。可能なかぎり多くの判断がコンパイル時に行われるので、C++ の静的型検査の理論と統一性があります。ほとんどの場合、Tools.h++では一般性がなく極端に単純なクラス、またはより一般性がある複雑なクラスのどちらかを選択できます。

単純性-

単純性を保持するために、Tools.h++ ではサブクラスをほとんど使用していません。全体のアーキテクチャは精巧で統合されていますが、通常各クラスは明確に定義された 1 つの役割だけを果たします。関数の多くは単純で、わずか数行のコードで書かれています。新しい機能は最低限だけ追加されており、ある機能を実行する方法がすでに存在する場合は、ほとんどそのままにしてあります。

コンパクト性-

C++ と同様に、Tools.h++ もプログラムを小さくコンパイルすることを目標にしています。そのため Tools.h++ は、組み込みシステム用プログラムの作成でも威力を発揮します。この意味において、テンプレートは相反した効果を持ちます。つまり、コンパクトなソースコードを奨励する一方で、多くの場合コンパイル時のコンパクト性を犠牲にしなければならないということです。

予期性-

よく利用される演算子はすべて予期したとおりに機能します。つまり、見たこともないような演算子や難解な多重定義の演算子は存在しません。Tools.h++ は調和がとれており、辞書の実装をハッシュ表から B ツリーに変更するようなことを難なく実現可能にします。