- // We will ignore any warnings that we are using multi-character literals, 
- // as using them is the whole point of this program 
- #pragma GCC diagnostics ignored "-Wmultichar" 
-   
- enum what { 
- 	STOP = 'STOP', 
- 	  GO = '  GO', 
- 	WAIT = 'WAIT' 
- }; 
-   
- #include <iostream> 
- static ::std::ostream& debug_print(::std::ostream& os, enum what x) { 
- 	// We reinterpret_cast the values to show the same thing 
- 	// a memory dump would show in the debugger: 
- 	char const* p = reinterpret_cast<char const*>(&x); 
- 	return os << p[3] << p[2] << p[1] << p[0]; 
- } 
-   
- int main() { 
- 	enum what stop = STOP; 
- 	enum what   go =   GO; 
- 	enum what wait = WAIT; 
-   
- 	debug_print(::std::cout << "stop: ", stop) << "\n"; 
- 	debug_print(::std::cout << "  go: ",   go) << "\n"; 
- 	debug_print(::std::cout << "wait: ", wait) << "\n"; 
- } 
				Ly8gV2Ugd2lsbCBpZ25vcmUgYW55IHdhcm5pbmdzIHRoYXQgd2UgYXJlIHVzaW5nIG11bHRpLWNoYXJhY3RlciBsaXRlcmFscywKLy8gYXMgdXNpbmcgdGhlbSBpcyB0aGUgd2hvbGUgcG9pbnQgb2YgdGhpcyBwcm9ncmFtCiNwcmFnbWEgR0NDIGRpYWdub3N0aWNzIGlnbm9yZWQgIi1XbXVsdGljaGFyIgoKZW51bSB3aGF0IHsKCVNUT1AgPSAnU1RPUCcsCgkgIEdPID0gJyAgR08nLAoJV0FJVCA9ICdXQUlUJwp9OwoKI2luY2x1ZGUgPGlvc3RyZWFtPgpzdGF0aWMgOjpzdGQ6Om9zdHJlYW0mIGRlYnVnX3ByaW50KDo6c3RkOjpvc3RyZWFtJiBvcywgZW51bSB3aGF0IHgpIHsKCS8vIFdlIHJlaW50ZXJwcmV0X2Nhc3QgdGhlIHZhbHVlcyB0byBzaG93IHRoZSBzYW1lIHRoaW5nCgkvLyBhIG1lbW9yeSBkdW1wIHdvdWxkIHNob3cgaW4gdGhlIGRlYnVnZ2VyOgoJY2hhciBjb25zdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhciBjb25zdCo+KCZ4KTsKCXJldHVybiBvcyA8PCBwWzNdIDw8IHBbMl0gPDwgcFsxXSA8PCBwWzBdOwp9CgppbnQgbWFpbigpIHsKCWVudW0gd2hhdCBzdG9wID0gU1RPUDsKCWVudW0gd2hhdCAgIGdvID0gICBHTzsKCWVudW0gd2hhdCB3YWl0ID0gV0FJVDsKCQoJZGVidWdfcHJpbnQoOjpzdGQ6OmNvdXQgPDwgInN0b3A6ICIsIHN0b3ApIDw8ICJcbiI7CglkZWJ1Z19wcmludCg6OnN0ZDo6Y291dCA8PCAiICBnbzogIiwgICBnbykgPDwgIlxuIjsKCWRlYnVnX3ByaW50KDo6c3RkOjpjb3V0IDw8ICJ3YWl0OiAiLCB3YWl0KSA8PCAiXG4iOwp9