I have a recurrent chunk of code where I loop over all the members of an `enum class`.

The `for` loop that I currently use looks very unwieldly compared to the new `range-based for`.

Is there any way to take advantage of new C++11 features to cut down on the verbosity for my current `for` loop?

Current Code that I would like to improve:

```
enum class COLOR
{
    Blue,
    Red,
    Green,
    Purple,
    First=Blue,
    Last=Purple
};

inline COLOR operator++( COLOR& x ) { return x = (COLOR)(((int)(x) + 1)); }

int main(int argc, char** argv)
{
  // any way to improve the next line with range-based for?
  for( COLOR c=COLOR::First; c!=COLOR::Last; ++c )
  {
    // do work
  }
  return 0;
}

```

In other words, it would be nice if I could do something like:

```
for( const auto& c : COLOR )
{
  // do work
}

```