#include <iostream>
#include <string>
using namespace std;
enum class Enum:int {
val1,
val2,
val3
};
Enum getenum(char input[]){
Enum tempenum;
string par = string(input);
if(!par.compare("val1")){
tempenum = Enum::val1;
}
else if(!par.compare("val2")) {
tempenum = Enum::val2;
} else if(!par.compare("val3")) {
tempenum = Enum::val3;
}
return tempenum;
}
int main(int argc, char** argv){
switch(getenum("val3")){
case Enum::val1:
cout << "chosen val1" << endl;
break;
case Enum::val2:
cout << "chosen val2" << endl;
break;
case Enum::val3:
cout << "chosen val3" << endl;
break;
default:
cout << "NONE" << endl;
break;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmVudW0gY2xhc3MgRW51bTppbnQgewogICAgdmFsMSwKICAgIHZhbDIsCiAgICB2YWwzCn07CgpFbnVtIGdldGVudW0oY2hhciBpbnB1dFtdKXsKICAgIEVudW0gdGVtcGVudW07CgogICAgc3RyaW5nIHBhciA9IHN0cmluZyhpbnB1dCk7CgogICAgaWYoIXBhci5jb21wYXJlKCJ2YWwxIikpewogICAgICAgIHRlbXBlbnVtID0gRW51bTo6dmFsMTsKICAgIH0KICAgIGVsc2UgaWYoIXBhci5jb21wYXJlKCJ2YWwyIikpIHsKICAgICAgICB0ZW1wZW51bSA9IEVudW06OnZhbDI7CiAgICB9IGVsc2UgaWYoIXBhci5jb21wYXJlKCJ2YWwzIikpIHsKICAgICAgICB0ZW1wZW51bSA9IEVudW06OnZhbDM7CiAgICB9CgogICAgcmV0dXJuIHRlbXBlbnVtOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpewoKICAgIHN3aXRjaChnZXRlbnVtKCJ2YWwzIikpewogICAgICAgIGNhc2UgRW51bTo6dmFsMToKICAgICAgICAgICAgY291dCA8PCAiY2hvc2VuIHZhbDEiIDw8IGVuZGw7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgRW51bTo6dmFsMjoKICAgICAgICAgICAgY291dCA8PCAiY2hvc2VuIHZhbDIiIDw8IGVuZGw7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgRW51bTo6dmFsMzoKICAgICAgICAgICAgY291dCA8PCAiY2hvc2VuIHZhbDMiIDw8IGVuZGw7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGNvdXQgPDwgIk5PTkUiIDw8IGVuZGw7CiAgICAgICAgICAgIGJyZWFrOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==