 Write me a program in C++ to compute the factorial of a number at compile time, using only C++03
 Here is a a C++ program that computes a factorial at compile time, that is compliant with the C++03 standard.

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

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

Using templates and template specialization we define a function fac<N>() which returns fac<N-1>()*N, specializing the case where N = 0 to return 1.
<|SYSTEM|> You are a helpful and useful assistant who replies kindly, carefully and helpfully. <|ENDOFSYSTEM|>
<|USER|> Write me a program in C++ to compute the factorial of a number at compile time, using only C++03
<|ENDOFUSER|>
<|RESPONSE|>
 Here is a a C++ program that computes a factorial at compile time, that is compliant with the C++03 standard.

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

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

Using templates and template specialization we define a function fac<N>() which returns fac<N-1>()*N, specializing the case where N = 0 to return 1.
<|ENDOFRESPONSE|>
