really? what compiler are you using? i got it very quickly when i ran your commit.
If you dial GCC or Clang up to -O3, you should be pretty much guaranteed to get tail call optimisation.
I think /O2 in Visual Studio will enable the same, but I don't have a Windows box around to test on.
Edited by swiftcoder, 02 November 2013 - 10:06 AM.