#include <iostream>
#include <map>
std::map<std::string, void(*)()> myMap;
#define LUAVOID(FN, ...) \
void FN(); \
static auto addFN ## __LINE__ = myMap.emplace(#FN, FN); \
void FN()
LUAVOID(TextMsg, string s)
{
std::cout << "hello!\n";
}
int main()
{
(myMap.find("TextMsg")->second)();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPgoKc3RkOjptYXA8c3RkOjpzdHJpbmcsIHZvaWQoKikoKT4gbXlNYXA7CgojZGVmaW5lIExVQVZPSUQoRk4sIC4uLikgXAogICAgdm9pZCBGTigpOyBcCiAgICBzdGF0aWMgYXV0byBhZGRGTiAjIyBfX0xJTkVfXyA9IG15TWFwLmVtcGxhY2UoI0ZOLCBGTik7IFwKICAgIHZvaWQgRk4oKQoKTFVBVk9JRChUZXh0TXNnLCBzdHJpbmcgcykKewogICAgc3RkOjpjb3V0IDw8ICJoZWxsbyFcbiI7Cn0KCmludCBtYWluKCkKewoJKG15TWFwLmZpbmQoIlRleHRNc2ciKS0+c2Vjb25kKSgpOwp9