1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | #include <iostream> #define ENUM_CLASS(NAME, TYPE, VALUES...) \ struct NAME { \ enum e { VALUES }; \ explicit NAME(TYPE v) : val(v) {} \ NAME(e v) : val(v) {} \ operator e() const { return e(val); } \ private:\ TYPE val; \ } struct Enum; void f(Enum e); ENUM_CLASS(Enum, int, VALUE, ANOTHER_VALUE ); void f (Enum e) { switch(e) { case Enum::VALUE: std::cout << "VALUE" << std::endl; return; case Enum::ANOTHER_VALUE: std::cout << "ANOTHER_VALUE" << std::endl; return; } Enum e2 = (Enum)(e | Enum::VALUE); } int main() { f(Enum::ANOTHER_VALUE); return 0; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgoKI2RlZmluZSBFTlVNX0NMQVNTKE5BTUUsIFRZUEUsIFZBTFVFUy4uLikgXApzdHJ1Y3QgTkFNRSB7IFwKICAgIGVudW0gZSB7IFZBTFVFUyB9OyBcCiAgICBleHBsaWNpdCBOQU1FKFRZUEUgdikgOiB2YWwodikge30gXAogICAgTkFNRShlIHYpIDogdmFsKHYpIHt9IFwKICAgIG9wZXJhdG9yIGUoKSBjb25zdCB7IHJldHVybiBlKHZhbCk7IH0gXAogICAgcHJpdmF0ZTpcCiAgICAgICAgVFlQRSB2YWw7IFwKfQoKc3RydWN0IEVudW07Cgp2b2lkIGYoRW51bSBlKTsKCkVOVU1fQ0xBU1MoRW51bSwgaW50LCAKICAgIFZBTFVFLAogICAgQU5PVEhFUl9WQUxVRQopOwoKdm9pZCBmIChFbnVtIGUpCnsKICAgIHN3aXRjaChlKQogICAgewogICAgICAgIGNhc2UgRW51bTo6VkFMVUU6CiAgICAgICAgICAgIHN0ZDo6Y291dCA8PCAiVkFMVUUiIDw8IHN0ZDo6ZW5kbDsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIGNhc2UgRW51bTo6QU5PVEhFUl9WQUxVRToKICAgICAgICAgICAgc3RkOjpjb3V0IDw8ICJBTk9USEVSX1ZBTFVFIiA8PCBzdGQ6OmVuZGw7CiAgICAgICAgICAgIHJldHVybjsKICAgIH0KCiAgICBFbnVtIGUyID0gKEVudW0pKGUgfCBFbnVtOjpWQUxVRSk7Cn0KCmludCBtYWluKCkKewogICAgZihFbnVtOjpBTk9USEVSX1ZBTFVFKTsKICAgIHJldHVybiAwOwp9
-
upload with new input
-
result: Success time: 0.01s memory: 2680 kB returned value: 0
ANOTHER_VALUE


