#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;
}