A structured answer to "What character class should I use?" in C++