マシン int や GMP 整数などの一般的な整数型で機能するアルゴリズムを備えた数学ソフトウェアを設計しています。パフォーマンスのために、通常はマシン int を使用したいと考えますが、オーバーフローが発生した場合は、GMP に切り替えることを試みることができます。理想的には実行時に。これまでのところ、プログラム全体が整数型のテンプレートとして書かれています。ライブラリが大きくなるにつれて、問題が大きくなります。
- コンパイル時間とメモリ消費量が手に負えなくなっています。
- コンパイル時のエラー メッセージはあまり役に立ちません。
- デバッグはより苦痛です。
- コード全体はヘッダー ファイルにあります。
次の解決策を考えることができます。コンパイル時マクロを介して typedef された固定型に依存するようにコードをリファクタリングします。次に、ライブラリのコピーを整数型ごとに 1 つずつ作成し、実行可能ファイルでそれらをリンクします。欠点は、ライブラリ自体へのインターフェイスが必要なようです。
簡単な質問は次のとおりです。プログラムのほぼ全体が型に依存している状況の設計パターンは何ですか?