#include <functional>
#include <cstdio>
struct C { int dummy1; char const * dummy2; };
struct A
{
std::function<void(C)> m_callback;
void foo(){
m_callback(C{123, "foo"});
}
};
struct B
{
B(){
a.m_callback = std::bind(&B::NoArgs, this);
}
void NoArgs(){
printf("wtf?");
}
A a;
};
int main() {
B b;
b.a.foo();
return 0;
}
I2luY2x1ZGUgPGZ1bmN0aW9uYWw+CiNpbmNsdWRlIDxjc3RkaW8+CgpzdHJ1Y3QgQyB7IGludCBkdW1teTE7IGNoYXIgY29uc3QgKiBkdW1teTI7IH07CgpzdHJ1Y3QgQQp7CglzdGQ6OmZ1bmN0aW9uPHZvaWQoQyk+IG1fY2FsbGJhY2s7Cgl2b2lkIGZvbygpewoJCW1fY2FsbGJhY2soQ3sxMjMsICJmb28ifSk7Cgl9Cn07CgpzdHJ1Y3QgQgp7CglCKCl7CgkJYS5tX2NhbGxiYWNrID0gc3RkOjpiaW5kKCZCOjpOb0FyZ3MsIHRoaXMpOwoJfQoJdm9pZCBOb0FyZ3MoKXsKCQlwcmludGYoInd0Zj8iKTsKCX0KCQoJQSBhOwp9OwoKaW50IG1haW4oKSB7CglCIGI7CgliLmEuZm9vKCk7CglyZXR1cm4gMDsKfQ==