title: What are rvalues, lvalues, xvalues, glvalues, and prvalues?
body: <p>In C++03, an expression is either an <strong>rvalue</strong> or an <strong>lvalue</strong>.</p>
  
  <p>In C++11, an expression can be an:     </p>
  
  <ol>
  <li><strong>rvalue</strong></li>
  <li><strong>lvalue</strong></li>
  <li><strong>xvalue</strong></li>
  <li><strong>glvalue</strong></li>
  <li><strong>prvalue</strong></li>
  </ol>
  
  <p>Two categories have become five categories.</p>
  
  <ul>
  <li>What are these new categories of expressions?</li>
  <li>How do these new categories relate to the existing rvalue and lvalue categories?  </li>
  <li>Are the rvalue and lvalue categories in C++0x the same as they are in C++03?</li>
  <li>Why are these new categories needed?  Are the <a href="http://www.open-std.org/jtc1/sc22/wg21/" rel="noreferrer">WG21</a> gods just trying to confuse us mere mortals?</li>
  </ul>