Compile-time Computation in C++