title: Starting a member function with arguments in a separate thread
body: <p>I have a member function <code>MyClass::doStuff(QString &amp; str)</code></p>
  
  <p>I am trying to call that function from a thread like this:</p>
  
  <pre><code>std::thread thr(&amp;MyClass::doStuff, this);
  </code></pre>
  
  <p>However, that results in an error:</p>
  
  <p><code>/usr/include/c++/4.8.2/functional:1697: error: no type named ‘type’ in ‘class std::result_of&lt;std::_Mem_fn&lt;void (MyClass::*)(QString&amp;)&gt;(MyClass*)&gt;’
         typedef typename result_of&lt;_Callable(_Args...)&gt;::type result_type;</code></p>
  
  <p>So I've attempted to give it the argument:</p>
  
  <pre><code>QString a("test");
  std::thread thr(&amp;MyClass::doStuff(a), this);
  </code></pre>
  
  <p>However, that results in this error: <code>lvalue required as unary ‘&amp;’ operand</code></p>
  
  <p>How would I go about running that member function with an argument, from a separate thread?</p>