#include <functional>
#include <iostream>
class Socket
{
public:
void recv(const std::function<void(const std::string&)>& func) {}
};
class Client
{
public:
void handshake() {}
};
int main()
{
Socket sock;
Client client;
sock.recv([&client](std::string data)
{
client.handshake();
});
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCmNsYXNzIFNvY2tldAp7CnB1YmxpYzoKICAgdm9pZCByZWN2KGNvbnN0IHN0ZDo6ZnVuY3Rpb248dm9pZChjb25zdCBzdGQ6OnN0cmluZyYpPiYgZnVuYykge30KfTsKCmNsYXNzIENsaWVudAp7CnB1YmxpYzoKICAgdm9pZCBoYW5kc2hha2UoKSB7fQp9OwoKaW50IG1haW4oKQp7CiAgIFNvY2tldCBzb2NrOwogICBDbGllbnQgY2xpZW50OwogICBzb2NrLnJlY3YoWyZjbGllbnRdKHN0ZDo6c3RyaW5nIGRhdGEpCiAgIHsKICAgICAgY2xpZW50LmhhbmRzaGFrZSgpOwogICB9KTsKfQo=