5 #include <boost/foreach.hpp> 
   23   static const CArray<const char*,3> str = {{
 
   24       "False", 
"Unknown", 
"True",
 
   26   return os << str[t+1];
 
   28 #define out(os, shared, x) os << #x << " " << shared.x << "  " 
   29 template <
class T> 
void outt(std::ostream& os, 
const T& a, 
const char *str)
 
   32         os << str << 
" " << a << 
"  ";
 
   34 #define outif(os, shared, x) outt(os, shared.x, #x) 
   44     out(os, shared, checkmate);
 
   46     out(os, shared, threatmate);
 
   48     out(os, shared, escape_from_check);
 
   49   outif(os, shared, checkmate_move);
 
   50   outif(os, shared, threatmate_move);
 
   51   outif(os, shared, threatmate_probability);
 
   52   outif(os, shared, threatmate_node_count);
 
   53   outif(os, shared, checkmate_for_capture.safe_count);
 
   54   outif(os, shared, checkmate_for_capture.checkmate_count);
 
   55   outif(os, shared, checkmate_for_capture.see_plus_checkmate_count);
 
   56   outif(os, shared, checkmate_for_escape.safe_count);
 
   57   outif(os, shared, checkmate_for_escape.checkmate_count);