#include <iostream>
#include <functional>
struct Foo {
void print_sum(int n1, int n2)
{
std::cout << n1+n2 << '\n';
}
int data = 10;
};
int main()
{
using namespace std::placeholders; //for _1, _2, _3...
// bind to a member function
Foo foo;
auto f3 = std::bind(&Foo::print_sum, &foo, 95, _1);
f3(5);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCnN0cnVjdCBGb28gewogICAgdm9pZCBwcmludF9zdW0oaW50IG4xLCBpbnQgbjIpCiAgICB7CiAgICAgICAgc3RkOjpjb3V0IDw8IG4xK24yIDw8ICdcbic7CiAgICB9CiAgICBpbnQgZGF0YSA9IDEwOwp9OwoKaW50IG1haW4oKQp7CiAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpwbGFjZWhvbGRlcnM7IC8vZm9yIF8xLCBfMiwgXzMuLi4KCiAgICAvLyBiaW5kIHRvIGEgbWVtYmVyIGZ1bmN0aW9uCiAgICBGb28gZm9vOwogICAgYXV0byBmMyA9IHN0ZDo6YmluZCgmRm9vOjpwcmludF9zdW0sICZmb28sIDk1LCBfMSk7CiAgICBmMyg1KTsKfQ==