【C++】template 統合スレ -- Part5
■ このスレッドは過去ログ倉庫に格納されています
0064お仕事探していまつ ◆y3A2MadQ16
NGNGそれができてついでにstatic connst doubleも定数式として計算してくれていれば
苦労は少なかったんですけどね。
(もっというならtemplateパラメタに渡せれば根本的に解決しますが、
浮動小数点数の同値には多くの場合あまり意味がないのでそれが実現されていない理由も分ります。)
クラス/構造体にstatic const doubleなメンバはそもそも持たせられないのでして。
template<int sign, int exp, typename fraction>
struct StaticReal{
static const int s = sign;
static const int e = exp;
typedef fraction f;
};
って感じです(実際は精度を指定するテンプレート・パラメータとかいろいろありますが)。
小数部をあらわすfractionが基本型でなく
typedefになっているのはIEEE準拠のdoubleの実装には
64bitを超える結果を返す正確な整数演算が必要だったため、
それもクラス・テンプレートで実装する必要があったからです。
具体的な各浮動小数点数値はこのテンプレートの特殊バージョンとして与えられます。
■ このスレッドは過去ログ倉庫に格納されています