#include <iostream>
#include <string>
using namespace std;
int HelloWorld(string var1, const char* var2)
{
cout << var1 << " " << var2 << endl;
return 5;
}
template<typename Fn, typename... Args>
auto CallFunction(Fn fn, Args&&... args)
{
return fn(forward<Args>(args)...);
}
int main()
{
cout << "Value returned: " << CallFunction(HelloWorld,"Hello","World");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgppbnQgSGVsbG9Xb3JsZChzdHJpbmcgdmFyMSwgY29uc3QgY2hhciogdmFyMikKewoJY291dCA8PCB2YXIxIDw8ICIgIiA8PCB2YXIyIDw8IGVuZGw7CglyZXR1cm4gNTsKfQoKdGVtcGxhdGU8dHlwZW5hbWUgRm4sIHR5cGVuYW1lLi4uIEFyZ3M+CmF1dG8gQ2FsbEZ1bmN0aW9uKEZuIGZuLCBBcmdzJiYuLi4gYXJncykKewogICAgIHJldHVybiBmbihmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKTsKfQoKaW50IG1haW4oKQp7Cgljb3V0IDw8ICJWYWx1ZSByZXR1cm5lZDogIiA8PCBDYWxsRnVuY3Rpb24oSGVsbG9Xb3JsZCwiSGVsbG8iLCJXb3JsZCIpOwoJcmV0dXJuIDA7Cn0=