title: What is the difference between rvalue reference and xvalue?
body: <p>I'm new to C++ and this is my first question here so bear with me please ... I have been reading about lvalue and rvalue for a while and I think I understand most of it but there is bit that still confuses me ... so my question will be specific </p>
  
  <p>rvalue references are considered lvalue (this part I understand) but functions that return rvalue references are considered rvalue (or xvalue to be specific) for instance:</p>
  
  <pre><code>int x = 32;
  int&amp; Lref = x; // Lref is lvalue ... ok
  int&amp; funcA(); // calling funcA() is lvalue ... ok 
  
  int&amp;&amp; Rref = 32; // Rref is lvalue ... ok I got this
  int&amp;&amp; funcB(); // calling funcB() is rvalue ... Why?
  </code></pre>
  
  <p>So the question is: why calling funcB() which return rvalue reference is considered rvalue ?</p>
  
  <p>Thanks in advance.</p>