title: QtConcurrent::map() with member function = can not compile
body: <p>My project is to create a small program which demonstrates the work of a search engine: indexing and returning result for arbitrary queries. I've done the work with the indexer part and now I want to improve it with indexing multiple files at once. The MainWindow class is here:</p>
  
  <pre><code>class MainWindow : public QMainWindow
  {
      Q_OBJECT
      .....
  private:
      Indexer * indexer;
      QStringList fileList;
      ....
      void index(QStringList list);
      void add(const QString &amp;filename);
  }
  </code></pre>
  
  <p>This is the implementation of <code>add</code> (<code>add</code> need to access <code>fileList</code> to avoid index the same files again, thus it can not be static method):</p>
  
  <pre><code>void MainWindow::add(const QString &amp;filename)
  {
      if (!fileList.contains(filename))
      {
          indexer-&gt;addDocument(filename.toStdString());
          fileList.append(filename);
          qDebug() &lt;&lt; "Indexed" &lt;&lt; filename;
          emit updatedList(fileList);
      }
  }
  </code></pre>
  
  <p>The implement of <code>index</code> method is to receive a file lists and call <code>add</code> upon each file name:</p>
  
  <pre><code>void MainWindow::index(QStringList list)
  {
      ....
      QtConcurrent::map(list, &amp;MainWindow::add);
      ....
  }
  </code></pre>
  
  <p>The error I receive when compiling these code is:</p>
  
  <pre><code>usr/include/qt4/QtCore/qtconcurrentmapkernel.h: In member function 'bool QtConcurrent::MapKernel&lt;Iterator, MapFunctor&gt;::runIteration(Iterator, int, void*) [with Iterator = QList&lt;QString&gt;::iterator, MapFunctor = QtConcurrent::MemberFunctionWrapper1&lt;void, MainWindow, const QString&amp;&gt;]':
  ../search-engine/mainwindow.cpp:361:1:   instantiated from here
  /usr/include/qt4/QtCore/qtconcurrentmapkernel.h:73:9: error: no match for call to '(QtConcurrent::MemberFunctionWrapper1&lt;void, MainWindow, const QString&amp;&gt;) (QString&amp;)'
  /usr/include/qt4/QtCore/qtconcurrentfunctionwrappers.h:128:7: note: candidate is:
  /usr/include/qt4/QtCore/qtconcurrentfunctionwrappers.h:138:14: note: T QtConcurrent::MemberFunctionWrapper1&lt;T, C, U&gt;::operator()(C&amp;, U) [with T = void, C = MainWindow, U = const QString&amp;]
  /usr/include/qt4/QtCore/qtconcurrentfunctionwrappers.h:138:14: note:   candidate expects 2 arguments, 1 provided
  </code></pre>
  
  <p>I'm not really familiar with how QtConcurrent works, and the documentation doesn't provide much details about it. I really hope that someone here can help. Thanks in advance.</p>