title: Enum Class "could not convert to unsigned int"
body: <p>I have an enum class like this:</p>
  
  <pre><code>    typedef unsigned int binary_instructions_t;
  
      enum class BinaryInstructions : binary_instructions_t
      {
          END_INSTRUCTION = 0x0,
  
          RESET,
  
          SET_STEP_TIME,
          SET_STOP_TIME,
          START,
  
          ADD
      };
  </code></pre>
  
  <p>And I am trying to use the members of the enum in a switch statement like this:</p>
  
  <pre><code>const std::string&amp; function(binary_instructions_t arg, bool&amp; error_detect)
  {
      switch(arg)
      {
          case (unsigned int)BinaryInstructions::END_INSTRUCTION:
              return "end";
          break;
      }
      translate_error = true;
      return "ERROR";
  }
  </code></pre>
  
  <p>Why is the cast to <code>(unsigned int)</code> required when the underlying type is already an <code>unsigned int</code>?</p>