title: Assigning rvalue references while assigning string
body: <p>I am learning about rvalue references and my brain is probably all over the place. But I wanted to test the std::move and rvalue references and below is the code snippet</p>
  
  <pre><code>string s1 = "hello";
  {
      string&amp;&amp; s2 = std::move(s1);
      cout &lt;&lt; s2 &lt;&lt; endl;
  }
  
  cout &lt;&lt; s1 &lt;&lt; endl;
  </code></pre>
  
  <p>The output is the same in both the cases. "hello"</p>
  
  <p>I was hoping that inside the block when creating s2, it would've called the move assignment operator, thus making sure that s1 didnt point to anything, but that didnt happen.</p>
  
  <p>My rational is that string is carrying a pointer to char inside of it, so when the move pointer is called, it will move the memory allocation from  Thus when I move from s1 to s2, printing s1 should cause problems.</p>
  
  <p>What did I do wrong in my understanding.</p>