#include <iostream>
#include <algorithm>
#include <functional>
int main()
{
bool foo = true;
auto predicate = foo ? std::function<bool(int,int)>(std::greater<int>()) : std::function<bool(int,int)>(std::greater_equal<int>());
auto b = std::bind2nd(predicate, 2);
std::cout << b(4) << std::endl; // true, 4 > 2
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8ZnVuY3Rpb25hbD4KCmludCBtYWluKCkKewoJYm9vbCBmb28gPSB0cnVlOwoJYXV0byBwcmVkaWNhdGUgPSBmb28gPyBzdGQ6OmZ1bmN0aW9uPGJvb2woaW50LGludCk+KHN0ZDo6Z3JlYXRlcjxpbnQ+KCkpIDogc3RkOjpmdW5jdGlvbjxib29sKGludCxpbnQpPihzdGQ6OmdyZWF0ZXJfZXF1YWw8aW50PigpKTsKCWF1dG8gYiA9IHN0ZDo6YmluZDJuZChwcmVkaWNhdGUsIDIpOwoJc3RkOjpjb3V0IDw8IGIoNCkgPDwgc3RkOjplbmRsOyAvLyB0cnVlLCA0ID4gMgp9Cg==