fork download
  1. #include <cstdint>
  2. using namespace std;
  3.  
  4. class cmw_user_input_data_member_flags {
  5. public:
  6. enum E : int16_t {
  7. default_ = 0x0,
  8. headers = 0x1,
  9. middlefile = 0x2,
  10. choices = 0x4
  11. };
  12. constexpr cmw_user_input_data_member_flags() noexcept {};
  13. constexpr explicit cmw_user_input_data_member_flags(E v) noexcept : val{v} {};
  14.  
  15. cmw_user_input_data_member_flags(const cmw_user_input_data_member_flags& o)
  16. noexcept : val{o.val} {};
  17.  
  18. cmw_user_input_data_member_flags& operator=(E v) noexcept
  19. {val = v; return *this;};
  20.  
  21. cmw_user_input_data_member_flags&
  22. operator=(cmw_user_input_data_member_flags& o) noexcept
  23. {val = o.val; return *this;};
  24.  
  25. operator E() const noexcept {return val;};
  26. protected:
  27. E val{default_};
  28. private:
  29. //operator int() const; // eventually
  30. };
  31.  
  32. int main() {
  33. using Flags = cmw_user_input_data_member_flags;
  34. Flags x{Flags::headers};
  35. //Flags y{0x1}; // not valid
  36. Flags z;
  37. z = Flags::choices;
  38. }
  39.  
Success #stdin #stdout 0s 2848KB
stdin
Standard input is empty
stdout
Standard output is empty