title: What is the type of an rvalue reference parameter inside a function?
body: <p>I have a really simple function definition here:</p>
  <pre><code>void testRvalue(int&amp;&amp; r)
  {
      printf(&quot;rvalue ref is called\n&quot;);
      testRvalue(r); // this line gives &quot;no known conversion from 'int' to 'int &amp;&amp;' for 1st argument&quot;
  }
  </code></pre>
  <p>I mean inside this function, what is the type of <code>r</code>? Isn't it <code>int&amp;&amp;</code> (the parameter is <code>int&amp;&amp; r</code> so how come <code>r</code> is not of type <code>int&amp;&amp;</code>?) If so why can't I pass this <code>r</code> to this function itself, which takes a <code>int&amp;&amp;</code> type as parameter?</p>
  <p>What is the type of <code>r</code> exactly? <code>int&amp;&amp;</code> or <code>int</code>? If <code>int</code>, why?</p>