#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==