// 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