#define PROBLEM Helloworld #include class Helloworld { public: void solve() { std::cout << "Hello World!" << std::endl; } }; template void solve(C* problem) { problem->solve(); } int main() { auto problem = new PROBLEM(); solve(problem); return 0; }