Thomas Darimont
Erfahrenes Mitglied
Hallo,
hier ein kleines Beispiel zu Template Metaprogramming unter C++. Im Beispiel wird die 10-te Fibonacci-Zahl berechnet, dies findet jedoch nicht zur Laufzeit statt sondern wird zur Compile-Zeit vom Compiler durchgeführt.
Ausgabe:
Gruß Tom
hier ein kleines Beispiel zu Template Metaprogramming unter C++. Im Beispiel wird die 10-te Fibonacci-Zahl berechnet, dies findet jedoch nicht zur Laufzeit statt sondern wird zur Compile-Zeit vom Compiler durchgeführt.
C++:
#include <iostream>
using namespace std;
template <int N>
struct Fibonacci{
enum {
value = Fibonacci<N-1>::value + Fibonacci<N-2>::value
};
};
template <>
struct Fibonacci<1>{
enum {
value = 1
};
};
template <>
struct Fibonacci<0>{
enum {
value = 0
};
};
int main(int argc, char *argv[])
{
const int fib = Fibonacci<10>::value;
cout << fib << endl;
return 0;
}
Ausgabe:
Code:
55
Gruß Tom