#include <functional>
struct Button {
struct Controller {
virtual void onPressed(Button &) = 0;
};
Button(Controller * controller);
};
namespace callbacks {
struct Button {
typedef std::function<void(Button &)> Callback;
Button(const Callback & callback) : callback(callback) {}
Callback callback;
};
}
int main()
{
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+IAoKc3RydWN0IEJ1dHRvbiB7CiAgICBzdHJ1Y3QgQ29udHJvbGxlciB7CiAgICAgICAgdmlydHVhbCB2b2lkIG9uUHJlc3NlZChCdXR0b24gJikgPSAwOwogICAgfTsKCiAgICBCdXR0b24oQ29udHJvbGxlciAqIGNvbnRyb2xsZXIpOwp9OwoKbmFtZXNwYWNlIGNhbGxiYWNrcyB7CgpzdHJ1Y3QgQnV0dG9uIHsKICAgIHR5cGVkZWYgc3RkOjpmdW5jdGlvbjx2b2lkKEJ1dHRvbiAmKT4gQ2FsbGJhY2s7CgogICAgQnV0dG9uKGNvbnN0IENhbGxiYWNrICYgY2FsbGJhY2spIDogY2FsbGJhY2soY2FsbGJhY2spIHt9CgogICAgQ2FsbGJhY2sgY2FsbGJhY2s7Cn07Cgp9CgoKaW50IG1haW4oKQp7Cn0=