#include <iostream>
#include <functional>
using namespace std::placeholders;
int foo(int i)
{
return i*2;
}
int main(int argc, const char *argv[])
{
std::function<int(int, int)> barfunc = std::bind(foo, (_1, _2));
std::cout << barfunc(-999, 21) << std::endl;
// or even (thanks Xeo)
barfunc = std::bind(foo, _2);
std::cout << barfunc(-999, 21) << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDo6cGxhY2Vob2xkZXJzOwoKaW50IGZvbyhpbnQgaSkKewogICAgcmV0dXJuIGkqMjsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKewogICAgc3RkOjpmdW5jdGlvbjxpbnQoaW50LCBpbnQpPiBiYXJmdW5jID0gc3RkOjpiaW5kKGZvbywgKF8xLCBfMikpOwogICAgc3RkOjpjb3V0IDw8IGJhcmZ1bmMoLTk5OSwgMjEpIDw8IHN0ZDo6ZW5kbDsKCiAgICAvLyBvciBldmVuICh0aGFua3MgWGVvKQogICAgYmFyZnVuYyA9IHN0ZDo6YmluZChmb28sIF8yKTsKICAgIHN0ZDo6Y291dCA8PCBiYXJmdW5jKC05OTksIDIxKSA8PCBzdGQ6OmVuZGw7Cn0K