#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;
}