#include <iostream>
using namespace std;
template<typename T, typename U>
bool isOneOf(T a, U b) {
return a == b;
}
template<typename T, typename U, typename ... Args>
bool isOneOf(T a, U b, Args ... args) {
return isOneOf(a, b) || isOneOf(a, args...);
}
class Checker {
int checks;
int value;
public:
Checker(int value) {
this->checks = 0;
this->value = value;
}
int getValue() {
checks += 1;
return value;
}
int getChecks() {
return checks;
}
};
int main() {
Checker c(1);
if (isOneOf(c.getValue(), 2, 3, 1, 4, 5))
cout << "true" << endl;
cout << "checks: " << c.getChecks() << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CmJvb2wgaXNPbmVPZihUIGEsIFUgYikgewogICAgcmV0dXJuIGEgPT0gYjsKfQogCnRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFUsIHR5cGVuYW1lIC4uLiBBcmdzPgpib29sIGlzT25lT2YoVCBhLCBVIGIsIEFyZ3MgLi4uIGFyZ3MpIHsKICAgIHJldHVybiBpc09uZU9mKGEsIGIpIHx8IGlzT25lT2YoYSwgYXJncy4uLik7Cn0KCmNsYXNzIENoZWNrZXIgewoJaW50IGNoZWNrczsKCWludCB2YWx1ZTsKcHVibGljOgoJQ2hlY2tlcihpbnQgdmFsdWUpIHsKCQl0aGlzLT5jaGVja3MgPSAwOwoJCXRoaXMtPnZhbHVlID0gdmFsdWU7Cgl9CglpbnQgZ2V0VmFsdWUoKSB7CgkJY2hlY2tzICs9IDE7CgkJcmV0dXJuIHZhbHVlOwoJfQoJaW50IGdldENoZWNrcygpIHsKCQlyZXR1cm4gY2hlY2tzOwoJfQp9OwoKaW50IG1haW4oKSB7CglDaGVja2VyIGMoMSk7CglpZiAoaXNPbmVPZihjLmdldFZhbHVlKCksIDIsIDMsIDEsIDQsIDUpKQoJCWNvdXQgPDwgInRydWUiIDw8IGVuZGw7Cgljb3V0IDw8ICJjaGVja3M6ICIgPDwgYy5nZXRDaGVja3MoKSA8PCBlbmRsOwoJcmV0dXJuIDA7Cn0=