SomePacket buffer[1]; // SomePacket is POD
read(socket, asio::buffer(buffer));
SomePacket& packet = buffer[0];
foo = packet.foo;
ICAgIFNvbWVQYWNrZXQgYnVmZmVyWzFdOyAvLyBTb21lUGFja2V0IGlzIFBPRAogICAgcmVhZChzb2NrZXQsIGFzaW86OmJ1ZmZlcihidWZmZXIpKTsKICAgIFNvbWVQYWNrZXQmIHBhY2tldCA9IGJ1ZmZlclswXTsKICAgIGZvbyA9IHBhY2tldC5mb287CiAgICA=