#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=