- #include <iostream> 
-   
- using namespace std; 
-   
- enum FACE { NORTH, SOUTH, EAST, WEST }; 
-   
- struct Direction { 
- 	FACE face; 
- }; 
-   
- std::ostream& operator<<(std::ostream& os, Direction const& dir) 
- { 
- 	std::string face = ""; 
- 	switch(dir.face) 
- 	{ 
- 	case(NORTH): 
- 		os << "NORTH"; 
- 		break; 
- 	case(SOUTH): 
- 		os << "SOUTH"; 
- 		break; 
- 	case(EAST): 
- 		os << "EAST"; 
- 		break; 
- 	case(WEST): 
- 		os << "WEST"; 
- 		break; 
- 	} 
- 	return os << face; 
- } 
-   
- int main(){ 
- 	Direction dir; 
- 	dir.face = EAST; 
- 	cout << dir; // I want this to print EAST instead of having to do dir.face 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgogCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZW51bSBGQUNFIHsgTk9SVEgsIFNPVVRILCBFQVNULCBXRVNUIH07CiAKc3RydWN0IERpcmVjdGlvbiB7CglGQUNFIGZhY2U7Cn07CiAKc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIERpcmVjdGlvbiBjb25zdCYgZGlyKQp7CglzdGQ6OnN0cmluZyBmYWNlID0gIiI7Cglzd2l0Y2goZGlyLmZhY2UpCgl7CgljYXNlKE5PUlRIKToKCQlvcyA8PCAiTk9SVEgiOwoJCWJyZWFrOwoJY2FzZShTT1VUSCk6CgkJb3MgPDwgIlNPVVRIIjsKCQlicmVhazsKCWNhc2UoRUFTVCk6CgkJb3MgPDwgIkVBU1QiOwoJCWJyZWFrOwoJY2FzZShXRVNUKToKCQlvcyA8PCAiV0VTVCI7CgkJYnJlYWs7Cgl9CglyZXR1cm4gb3MgPDwgZmFjZTsKfQogCmludCBtYWluKCl7CglEaXJlY3Rpb24gZGlyOwoJZGlyLmZhY2UgPSBFQVNUOwoJY291dCA8PCBkaXI7IC8vIEkgd2FudCB0aGlzIHRvIHByaW50IEVBU1QgaW5zdGVhZCBvZiBoYXZpbmcgdG8gZG8gZGlyLmZhY2UKfQ==