ERuby-like compile-time templating for C++