title: Can't bind lvalue to rvalue reference
body: <p>I have this C++ test code snippet, </p>
  
  <pre class="lang-cpp prettyprint-override"><code>#include &lt;vector&gt;
  
  class A {
          std::vector&lt;int&gt; x;
  public:
          A(std::vector&lt;int&gt;&amp;&amp; _x) : x(_x) {}
  };
  
  class B {
          A a;
  public:
          B(std::vector&lt;int&gt;&amp;&amp; _x) : a(/*move(*/_x/*)*/) {}
  };
  </code></pre>
  
  <p>I'm passing <code>_x</code> to B as rvalue reference, but it's getting converted to lvalue when passed into <code>A</code>'s constructor and I have to use <code>std::move()</code> to make it work. My question is why _x is lvalue and not an rvalue reference in <code>a()</code>?</p>