For some enum types, it may be useful to define overloaded operators, such as ++ and --, that can iterate through the enumerator values:
#include <iostream>
using namespace std;
enum Days {Mon, Tue, Wed, Thur, Fri, Sat, Sun};
Days& operator++(Days& d, int) // int denotes postfix++
{
if (d == Sun) return d = Mon; //rollover
int temp = d;
return d = static_cast<Days> (++temp);
}
int main()
{
Days day = Mon;
for (;;) //display days as integers
{
cout<< day <<endl;
day++;
if (day == Mon) break;
}
return 0;
}