title: What is the underlying type of a c++ enum?
body: <p>This may have been answered elsewhere but I could not find a suitable response.</p>
  
  <p>I have this code:</p>
  
  <pre><code>enum enumWizardPage
  {
      WP_NONE = 0x00,  
      WP_CMDID = 0x01,    
      WP_LEAGUES = 0x02,  
      WP_TEAMS = 0x04,    
      WP_COMP = 0x08, 
      WP_DIVISIONS = 0x10,
      WP_FORMULAS = 0x20, 
      WP_FINISHED = 0x40, 
  };
  </code></pre>
  
  <p>Which is legacy and I have to modify it by adding a few new values.
  The issue is each value must be a unique bit so they may be OR combined to a bitmap.</p>
  
  <p>The values are set using the #x## hex format, but I'm wondering if this is the max it can store?
  What will be the effect, if any, if I change my code to </p>
  
  <pre><code>enum enumWizardPage
  {
      WP_NONE = 0x0000,  
      WP_CMDID = 0x0001,  
      WP_LEAGUES = 0x0002,    
      WP_TEAMS = 0x0004,  
      WP_COMP = 0x0008,   
      WP_DIVISIONS = 0x0010,
      WP_FORMULAS = 0x0020,   
      WP_FINISHED = 0x0040,   
  };
  </code></pre>