As many programmers I sometimes need to do some work for all flags set in an flag_set.
Can we add an type_safe way to iterate over all 'set' flags in an flag_set?
e.g.
enum class my_enum; // some flag_set compatible enum class
void do_something_with(my_enum e);
{
  type_safe::flag_set<my_enum> some_flag_set();
  type_safe::for_each(
    some_flag_set,
    [](f){ do_something_with(f); }
  );
}