簡単に作れるからわざわざ言語でサポートしなくてもってことじゃね?

class Hoge
{
public:
enum Enum { a, b, c };
inline Hoge(Enum e) : e_(e) { }
inline operator Enum (void) const { return e_; }
private:
Enum e_;
};

int main(void)
{
Hoge hoge(Hoge::a);
switch(hoge)
{
case Hoge::a: 〜; break;
case Hoge::b: 〜; break;
case Hoge::c: 〜; break;
}
return 0;
}