#include <iostream>
using namespace std;
enum class Enum { Q,W,E,R };
class EnumHolder {
public:
explicit EnumHolder(Enum e) : Value(e) {}
EnumHolder() = delete;
operator bool() const {
return (Value == Enum::Q || Value == Enum::W);
}
private:
Enum Value;
};
int main() {
EnumHolder E(Enum::E);
if (E) {
std::cout << "Enum Q or W" << std::endl;
} else {
std::cout << "Enum E or R" << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKZW51bSBjbGFzcyBFbnVtIHsgUSxXLEUsUiB9OwoKY2xhc3MgRW51bUhvbGRlciB7CiAgcHVibGljOgogICBleHBsaWNpdCBFbnVtSG9sZGVyKEVudW0gZSkgOiBWYWx1ZShlKSB7fQogICBFbnVtSG9sZGVyKCkgPSBkZWxldGU7CiAgIG9wZXJhdG9yIGJvb2woKSBjb25zdCB7CiAgIAkgcmV0dXJuIChWYWx1ZSA9PSBFbnVtOjpRIHx8IFZhbHVlID09IEVudW06OlcpOwogICB9CiAgcHJpdmF0ZToKICAgRW51bSBWYWx1ZTsKfTsKCmludCBtYWluKCkgewogIEVudW1Ib2xkZXIgRShFbnVtOjpFKTsKICBpZiAoRSkgewogIAlzdGQ6OmNvdXQgPDwgIkVudW0gUSBvciBXIiA8PCBzdGQ6OmVuZGw7CiAgfSBlbHNlIHsKICAJc3RkOjpjb3V0IDw8ICJFbnVtIEUgb3IgUiIgPDwgc3RkOjplbmRsOwogIH0KICByZXR1cm4gMDsKfQ==