C++ compile-time template engine