#include <iostream>
#include <functional>
struct T
{
T(int x) : x(x) {};
void foo() { std::cout << x; }
private:
int x;
};
int main()
{
using namespace std::placeholders; //for _1, _2, _3...
auto f = std::bind(&T::foo, _1);
T obj(5);
f(obj); // Output: 5
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCnN0cnVjdCBUCnsKICAgVChpbnQgeCkgOiB4KHgpIHt9OwogICB2b2lkIGZvbygpIHsgc3RkOjpjb3V0IDw8IHg7IH0KCnByaXZhdGU6CiAgIGludCB4Owp9OwoKaW50IG1haW4oKQp7CiAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ6OnBsYWNlaG9sZGVyczsgLy9mb3IgXzEsIF8yLCBfMy4uLgogICBhdXRvIGYgPSBzdGQ6OmJpbmQoJlQ6OmZvbywgXzEpOwoKICAgVCBvYmooNSk7CiAgIGYob2JqKTsgLy8gT3V0cHV0OiA1Cn0=