
Very nice looking library =) One addition I'd like to see would be a BOOST_ENUM_MASKS or similar: BOOST_ENUM_MASKS( orders, (can_move) (can_patrol) (can_fire) ) and etc, where can_move would get 1<<0, can_patrol would get 1<<1, and etc, so that they could be combind. Automatic "none" and "all" ones would be nice too. orders::type allowed_orders = orders::can_fire|orders::can_move; std::cout << allowed_orders << std::endl; // would show can_move|can_fire std::cout << ~allowed_orders << std::endl; // would show can_patrol std::cout << orders::all << std::endl; // would show can_move|can_patrol|can_fire std::cout << ~orders::all << ' ' << orders::none << std::endl; // would show none none ( maybe? ) I'm not sure if a _COMMENTS version would be all that useful nor a _VALUES one. I'm also not sure whether the '|' character should be configurable. I'll stop thinking now before I come up with an enum_mask_iterator idea and make this far too complicated :P - Scott