Make CoutWriter use integers instead of underlying_type
Make CoutWriter use integers instead of underlying_type

* If the underlying type is a char, cout << will write the char
  instead of the integer value, so we always want to use a signed
  integer. This doesn't work for the uncommon case of unsigned long
  long enums but it fixes the problem for the common case of signed or
  unsigned char enums.

redblobgames/cpp-traverse