#include <iostream> #include <ctype.h> namespace { void do_ctype(std::ostream& os, int i, int (*f)(int), std::string name) { if (f(i)) { os << " | " << name; } } } #define DO(x) do_ctype(std::cout, i, is##x, "_IS" #x) int main(int ac, char **av) { for (int i = -127; i < 256; ++i) { std::cout << "0"; DO(alnum); DO(alpha); /* DO(ascii); */ DO(blank); DO(cntrl); DO(digit); DO(graph); DO(lower); DO(print); DO(punct); DO(space); DO(upper); DO(xdigit); std::cout << ",\n"; } }