title: Moving arguments or passing them the usual C++98/03 way?
body: <p>Suppose that there is a <code>Person</code> class like this:</p>
  
  <pre><code>// "string" is std::string, "move" is std::move
  
  class Person
  {
  public:
      // C++11 way: pass by value and std::move() from the value
      Person(string name, string surname)
          : m_name(move(name)), m_surname(move(surname))
      {}
  
      ....
  
  private:
      string m_name;
      string m_surname;
  };
  </code></pre>
  
  <p>Suppose that I read the <code>name</code> and <code>surname</code> values from some source (e.g. a file) in some loop, and in each loop iteration I want to create a <code>Person</code> with these read values (and e.g. push the created <code>Person</code> in some container).</p>
  
  <p>Is it better to call <code>Person</code> constructor in the usual way:</p>
  
  <pre><code>Person(name, surname)
  </code></pre>
  
  <p>or using <code>std::move</code> for the arguments?</p>
  
  <pre><code>Person(move(name), move(surname))
  </code></pre>