#include <iostream>
#include <iomanip>
#include <functional>
using namespace std;
template<typename Comparator>
class MyClass{
static Comparator comp;//Looks like this class in not multithread-safe :p
public:
int value;
bool operator<(const MyClass& other){return comp(this->value, other.value);}
};
int main()
{
cout << boolalpha;
MyClass<std::less<int> > mc1{3};
MyClass<std::less<int> > mc2{5};
cout << (mc1 < mc2) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBDb21wYXJhdG9yPgpjbGFzcyBNeUNsYXNzewogICAgc3RhdGljIENvbXBhcmF0b3IgY29tcDsvL0xvb2tzIGxpa2UgdGhpcyBjbGFzcyBpbiBub3QgbXVsdGl0aHJlYWQtc2FmZSA6cApwdWJsaWM6CiAgICBpbnQgdmFsdWU7CiAgICBib29sIG9wZXJhdG9yPChjb25zdCBNeUNsYXNzJiBvdGhlcil7cmV0dXJuIGNvbXAodGhpcy0+dmFsdWUsIG90aGVyLnZhbHVlKTt9Cn07CgppbnQgbWFpbigpCnsKICAgIGNvdXQgPDwgYm9vbGFscGhhOwogICAgTXlDbGFzczxzdGQ6Omxlc3M8aW50PiA+IG1jMXszfTsKICAgIE15Q2xhc3M8c3RkOjpsZXNzPGludD4gPiBtYzJ7NX07CgogICAgY291dCA8PCAobWMxIDwgbWMyKSA8PCBlbmRsOwogICAgcmV0dXJuIDA7Cn0=