#include <iostream>
using namespace std;
#include <boost/bind.hpp>
#include <boost/function.hpp>
class FOO
{
public:
void f(boost::function<void(int)> boostbind_, int i_)
{
boostbind_(i_);
}
};
class BOO
{
public:
void b()
{
int i=0;
auto t = boost::bind(&BOO::b2, this, _1);
obj.f(t, i);
}
void b2(int) { cout << "test" << endl; }
FOO obj;
};
int main() {
BOO b;
b.b();
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2luY2x1ZGUgPGJvb3N0L2JpbmQuaHBwPgojaW5jbHVkZSA8Ym9vc3QvZnVuY3Rpb24uaHBwPgoKY2xhc3MgRk9PCnsKCXB1YmxpYzoKICAgIHZvaWQgZihib29zdDo6ZnVuY3Rpb248dm9pZChpbnQpPiBib29zdGJpbmRfLCBpbnQgaV8pCiAgICB7CiAgICAgICAgIGJvb3N0YmluZF8oaV8pOwogICAgfQp9OwoKY2xhc3MgQk9PCnsKCXB1YmxpYzoKICAgdm9pZCBiKCkKICAgewogICAgICAgIGludCBpPTA7CiAgICAgICAgYXV0byB0ID0gYm9vc3Q6OmJpbmQoJkJPTzo6YjIsIHRoaXMsIF8xKTsKICAgICAgICBvYmouZih0LCBpKTsKICAgfQogICB2b2lkIGIyKGludCkgeyBjb3V0IDw8ICJ0ZXN0IiA8PCBlbmRsOyB9CiAgIEZPTyBvYmo7Cn07CgppbnQgbWFpbigpIHsKCUJPTyBiOwoJYi5iKCk7CglyZXR1cm4gMDsKfQ==