#include using namespace std; enum class ColorT {RED, GREEN, BLUE, UNKNOWN}; enum class MoodT {HAPPY, BLUE, UNKNOWN}; string MoodTToString(MoodT m); ostream & operator << (ostream & s, MoodT m); int main() { MoodT me, you; me = MoodT::HAPPY; you = MoodT::BLUE; // none of these will compile. //you = 1; //you = BLUE; //you = ColorT::BLUE; cout << "I am " << me << endl; cout << "You are " << you << endl; return 0; } string MoodTToString(MoodT m){ switch (m) { case MoodT::HAPPY: return "Happy"; case MoodT::BLUE: return "Blue"; default: return "Unknown"; } } ostream & operator << (ostream & s, MoodT m){ s << MoodTToString(m); return s; }