#include <cstdio>
#include <cstdlib>
enum Enum1
{
ENUM1_NORTH,
ENUM1_SOUTH,
ENUM1_EAST,
ENUM1_WEST,
ENUM1_COUNT
};
enum Enum2
{
ENUM2_WEST,
ENUM2_NORTH,
ENUM2_SOUTH,
ENUM2_EAST,
ENUM2_COUNT
};
Enum1 get()
{
Enum1 gen = (Enum1) (rand() % ENUM1_COUNT);
printf("Generated: ");
switch(gen)
{
case(ENUM1_NORTH):
printf("North\n");
break;
case(ENUM1_SOUTH):
printf("South\n");
break;
case(ENUM1_EAST):
printf("East\n");
break;
case(ENUM1_WEST):
printf("West\n");
break;
}
return gen;
}
void perform(Enum2 in)
{
printf("Performed: ");
switch(in)
{
case(ENUM2_NORTH):
printf("North\n");
break;
case(ENUM2_SOUTH):
printf("South\n");
break;
case(ENUM2_EAST):
printf("East\n");
break;
case(ENUM2_WEST):
printf("West\n");
break;
}
}
int main()
{
int foo = get();
perform((Enum2) foo);
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPGNzdGRsaWI+CgplbnVtIEVudW0xCnsKCUVOVU0xX05PUlRILAoJRU5VTTFfU09VVEgsCglFTlVNMV9FQVNULAoJRU5VTTFfV0VTVCwKCUVOVU0xX0NPVU5UCn07CgplbnVtIEVudW0yCnsKCUVOVU0yX1dFU1QsCglFTlVNMl9OT1JUSCwKCUVOVU0yX1NPVVRILAoJRU5VTTJfRUFTVCwKCUVOVU0yX0NPVU5UCn07CgpFbnVtMSBnZXQoKQp7CglFbnVtMSBnZW4gPSAoRW51bTEpIChyYW5kKCkgJSBFTlVNMV9DT1VOVCk7CglwcmludGYoIkdlbmVyYXRlZDogIik7Cglzd2l0Y2goZ2VuKQoJewoJY2FzZShFTlVNMV9OT1JUSCk6CgkJcHJpbnRmKCJOb3J0aFxuIik7CgkJYnJlYWs7CgljYXNlKEVOVU0xX1NPVVRIKToKCQlwcmludGYoIlNvdXRoXG4iKTsKCQlicmVhazsKCWNhc2UoRU5VTTFfRUFTVCk6CgkJcHJpbnRmKCJFYXN0XG4iKTsKCQlicmVhazsKCWNhc2UoRU5VTTFfV0VTVCk6CgkJcHJpbnRmKCJXZXN0XG4iKTsKCQlicmVhazsKCX0KCXJldHVybiBnZW47Cn0KCnZvaWQgcGVyZm9ybShFbnVtMiBpbikKewoJcHJpbnRmKCJQZXJmb3JtZWQ6ICIpOwoJc3dpdGNoKGluKQoJewoJY2FzZShFTlVNMl9OT1JUSCk6CgkJcHJpbnRmKCJOb3J0aFxuIik7CgkJYnJlYWs7CgljYXNlKEVOVU0yX1NPVVRIKToKCQlwcmludGYoIlNvdXRoXG4iKTsKCQlicmVhazsKCWNhc2UoRU5VTTJfRUFTVCk6CgkJcHJpbnRmKCJFYXN0XG4iKTsKCQlicmVhazsKCWNhc2UoRU5VTTJfV0VTVCk6CgkJcHJpbnRmKCJXZXN0XG4iKTsKCQlicmVhazsKCX0KfQoKaW50IG1haW4oKQp7CglpbnQgZm9vID0gZ2V0KCk7CglwZXJmb3JtKChFbnVtMikgZm9vKTsKfQ==