私は機械intやGMP整数のような汎用整数型で動作するアルゴリズムを使って数学的なソフトウェアを設計しています。パフォーマンスのためには、通常、マシンのintで作業したいと思っていますが、オーバーフローがある場合は、GMPに切り替えることをお勧めします。理想的には実行時に。今のところ、プログラム全体は整数型のテンプレートとして書かれています。図書館が成長するにつれて、痛みは成長する:数学的なソフトウェアで整数型を抽象化する方法
- コンパイル時間とメモリ消費が手遅れになっています。
- コンパイル時のエラーメッセージはあまり役に立ちません。
- デバッグはより苦痛です。
- コード全体がヘッダファイルにあります。
私は以下の解決策を考えることができます。コンパイル時マクロを介してtypedefされる固定型に依存するようにコードをリファクタリングします。次に、ライブラリの複数のコピーを作成します。各整数型に1つずつ、実行可能ファイルにリンクします。欠点は、私自身がライブラリのインタフェースが必要であると思われることです。
ほとんどのプログラムがタイプに依存する状況のデザインパターンとは何ですか?
GMP(GNU Multiple Precision Arithmetic Library)は、パフォーマンスの点で小さな「int」を扱い、必要に応じてより大きなものにスケーリングするのに非常に優れています。それを改革しようとしないでください! – danodonovan