public void ForEachSubBits(Action <BitFlag> action) { for (BitFlag sub = flags_; sub > 0; sub = --sub & flags_) { action(sub); } }
public static int PopCount(this BitFlag bit) => (int)PopCount((uint)bit.Flag);
public BitFlag ComplementOf(BitFlag sub) => flags_ ^ sub.flags_;
public bool Has(BitFlag target) => (flags_ & target.flags_) == target.flags_;