title: Move Constructor, move vector between two objects using std::move?
body: <p>I have an object something like the following and I'm trying to implement a move constructor for so you can have an insert for <code>std::vector&lt;Mesh&gt;</code>. </p>
  
  <pre><code>struct Mesh
  {    
      std::vector&lt;Vector3&gt; vPoint;
      bool Valid;
  
      Mesh(Mesh&amp;&amp; other)
      {
          vPoint = std::move(other.vPoint);
          Valid = std::move(other.Valid);
      }
  };
  </code></pre>
  
  <p>Is this the correct way? 
  And if so what is the value of other.Valid after std::move operates on it?</p>
  
  <p>Edit: </p>
  
  <p>Also if I have an instance of this object do I need to use std::move in the following scenario?</p>
  
  <pre><code>std::vector&lt;Mesh&gt; DoSomething()
  {
      Mesh mesh; //Imagine vPoint is filled here to
  
      std::vector&lt;Mesh&gt; meshes;
      meshes.push_back(std::move(mesh)); // Here is my question, std::move? or just pass mesh here?
  
      return meshes;
  }
  </code></pre>