#include <iostream>
using namespace std;
class Test
{
public:
enum class Fruit
{
apple,
banana,
orange,
pineapple,
lemon
};
friend Fruit operator++(Fruit& f)
{
switch (f)
{
case Fruit::apple: return f = Fruit::banana;
case Fruit::banana: return f = Fruit::orange;
case Fruit::orange: return f = Fruit::pineapple;
case Fruit::pineapple: return f = Fruit::lemon;
case Fruit::lemon: return f = Fruit::apple;
}
}
};
int main() {
// your code goes here
Test::Fruit f = Test::Fruit::banana;
cout << (int)++f << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgVGVzdAp7CnB1YmxpYzoKICAgIGVudW0gY2xhc3MgRnJ1aXQKICAgIHsKICAgICAgYXBwbGUsCiAgICAgIGJhbmFuYSwKICAgICAgb3JhbmdlLAogICAgICBwaW5lYXBwbGUsCiAgICAgIGxlbW9uCiAgICB9OwogICAgCiAgICBmcmllbmQgRnJ1aXQgb3BlcmF0b3IrKyhGcnVpdCYgZikKICAgIHsKICAgICAgc3dpdGNoIChmKQogICAgICB7CiAgICAgIGNhc2UgRnJ1aXQ6OmFwcGxlOiByZXR1cm4gZiA9IEZydWl0OjpiYW5hbmE7CiAgICAgIGNhc2UgRnJ1aXQ6OmJhbmFuYTogcmV0dXJuIGYgPSBGcnVpdDo6b3JhbmdlOwogICAgICBjYXNlIEZydWl0OjpvcmFuZ2U6IHJldHVybiBmID0gRnJ1aXQ6OnBpbmVhcHBsZTsKICAgICAgY2FzZSBGcnVpdDo6cGluZWFwcGxlOiByZXR1cm4gZiA9IEZydWl0OjpsZW1vbjsKICAgICAgY2FzZSBGcnVpdDo6bGVtb246IHJldHVybiBmID0gRnJ1aXQ6OmFwcGxlOwogICAgICB9CiAgICB9Cn07CgppbnQgbWFpbigpIHsKCS8vIHlvdXIgY29kZSBnb2VzIGhlcmUKCVRlc3Q6OkZydWl0IGYgPSBUZXN0OjpGcnVpdDo6YmFuYW5hOwogCgljb3V0IDw8IChpbnQpKytmIDw8IGVuZGw7CiAKCXJldHVybiAwOwp9Cg==