title: Move semantics and primitive types
body: <p><strong>Example code</strong>:</p>
  
  <pre><code>int main()
  {
      std::vector&lt;int&gt; v1{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
      std::cout &lt;&lt; "Printing v1" &lt;&lt; std::endl;
      print(v1);
      std::vector&lt;int&gt; v2(std::make_move_iterator(v1.begin()),
                           std::make_move_iterator(v1.end()));
      std::cout &lt;&lt; "Printing v1" &lt;&lt; std::endl;
      print(v1);
      std::cout &lt;&lt; "Printing v2" &lt;&lt; std::endl;
      print(v2);
  
      std::vector&lt;std::string&gt; v3{"some", "stuff", "to",
                          "put", "in", "the", "strings"};
      std::cout &lt;&lt; "Printing v3" &lt;&lt; std::endl;
      print(v3);
      std::vector&lt;std::string&gt; v4(std::make_move_iterator(v3.begin()),
                                   std::make_move_iterator(v3.end()));
      std::cout &lt;&lt; "Printing v3" &lt;&lt; std::endl;
      print(v3);
      std::cout &lt;&lt; "Printing v4" &lt;&lt; std::endl;
      print(v4);
  }
  </code></pre>
  
  <p><strong>Output</strong>:</p>
  
  <pre><code>Printing v1
  1 2 3 4 5 6 7 8 9 10
  Printing v1
  1 2 3 4 5 6 7 8 9 10
  Printing v2
  1 2 3 4 5 6 7 8 9 10
  Printing v3
  some stuff to put in the strings
  Printing v3
  
  Printing v4
  some stuff to put in the strings
  </code></pre>
  
  <p><strong>Questions</strong></p>
  
  <ol>
  <li><p>Since move operations on primitive types is just a copy, can I assume that <code>v1</code> will be left unchanged or is the state unspecified even with primitive types?</p></li>
  <li><p>I'm assuming the reason why primitive types don't have move semantics is because copying is just as fast or even faster, is this correct?</p></li>
  </ol>