Schreib mir ein Programm in C++, um die Fakultät einer Zahl zur Kompilierzeit zu berechnen, unter Verwendung von nur C++03
Hier ist ein C++ Programm, das eine Fakultät zur Kompilierzeit berechnet und dem C++03 Standard entspricht.

```cpp
template<unsigned int N>
unsigned int fac() {
    return fac<N-1>() * N;
};

template<>
unsigned int fac<0>() {
    return 1;
}
```

Unter Verwendung von Templates und Template-Spezialisierung definieren wir eine Funktion fac<N>(), die fac<N-1>()*N zurückgibt und den Fall spezialisiert, wenn N = 0, um 1 zurückzugeben.