fork(1) download
  1. #include <iostream>
  2. #include <bitset>
  3.  
  4. enum class Weekdays
  5. {
  6. kSunday = 0,
  7. kMonday,
  8. kTuesday,
  9. kWednesday,
  10. kThursday,
  11. kFriday,
  12. kSaturday,
  13. COUNT
  14. };
  15.  
  16. class Foo {
  17. private:
  18. std::bitset<(ulong)Weekdays::COUNT> weekdayFlags;
  19. public:
  20. void setDay(Weekdays day) { weekdayFlags.set((size_t)day); }
  21. std::bitset<(ulong)Weekdays::COUNT>::reference operator[](Weekdays day) { return weekdayFlags[(size_t)day]; }
  22. };
  23.  
  24. int main() {
  25. Foo f;
  26.  
  27. f.setDay(Weekdays::kMonday);
  28. f[Weekdays::kTuesday] = f[Weekdays::kMonday];
  29. std::cout << std::boolalpha
  30. << "Monday: " << f[Weekdays::kMonday] << std::endl
  31. << "Tuesday: " << f[Weekdays::kTuesday] << std::endl
  32. << "Wednesday: " << f[Weekdays::kWednesday] << std::endl;
  33.  
  34. return 0;
  35. }
Success #stdin #stdout 0s 4424KB
stdin
Standard input is empty
stdout
Monday: true
Tuesday: true
Wednesday: false