2009-06-02 10 views
1

このテンプレート全体を初めて使っているテンプレートC++の混乱の中でメタプログラミングしても、この権利を得ることはできません。テンプレートを使用してコンパイル時に浮動小数点数を計算する

シナリオ: たとえば、私は2/5、6/9の小数部を持っています...コンパイル時にこれらの小数部の結果を計算し、実行時にその値を使って後でソートしたいのですが、時間。

これも可能ですか? マクロが多分?

編集: 感謝のNaveenが、それは、テンプレートを使用して、コンパイル時に浮動小数点数を計算することが可能だ場合、それは質問に答えていません。たとえば、再帰を使用します。

私は、ウェブ上の任意の情報を見つけることができません:/

答えて

2

あなたが何を求めているのかよく分かりません。あなたが真剣にテンプレートプログラミング、メタまたはそれ以外に取得したい場合は、私は強く優れている書籍C++ Templates: The Complete Guideの取得ホールドを示唆して:

#include <iostream> 
using namespace std;; 

template <int a, int b> struct Fract { 
    double value() const { 
     const double f = a/double(b); 
     return f; 
    } 
}; 

int main() { 
    Fract <2,5> f; 
    cout << f.value() << endl; 
} 

編集:あなたはこのような何かを意味します。

+1

テンプレートメタプログラミング?それは私の推測だろう。 –

+0

正確には、おそらく私はそれを書いたはずです:) – broken

+0

これは良い見えますニール、私はすぐにそれをテストします! – broken

5

あなたはそのためのテンプレートを必要としません。まともなコンパイラは、次のようなときに計算を最適化します:float f = 2.0/5; BTW、すべてがコンパイル時の変数の場合、なぜそれらを実行時にソートしたいのですか?

関連する問題