The template mechanism in C++ only accidentally became useful for template metaprogramming. On the other hand, D\'s was designed specifically to facilitate this. And apparently
Just to counter the D ray tracing post, here is a C++ compile time ray tracer (metatrace):
(by the way, it uses mostly C++2003 metaprogramming; it would be more readable with the new constexprs)
constexpr