Попробуйте передать не ссылки, а объекты:
...
QtConcurrent::map(lst, this->processing_list);
...
...
вот так у меня работает:
#include <QCoreApplication>
#include <QFuture>
#include <QtConcurrent/QtConcurrent>
#include <QString>
#include <QDebug>
void test(QString &str) {
qDebug() << str << " | ";
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QStringList strings;
strings << "test" << "test1";
QFuture<void> squeezedStrings = QtConcurrent::map(strings, &test);
return a.exec();
}
и вот так у меня работает:
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QStringList>
#include <QFuture>
#include <QtConcurrent/QtConcurrent>
#include <QObject>
class MainWindow : public QObject
{
public:
MainWindow(QObject *parent = 0);
void start();
QStringList lst;
private:
static void processing_list(QString &line);
};
#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QObject *parent) : QObject(parent){
}
void MainWindow::start() {
lst << "test" << "test1";
QtConcurrent::map(lst, &this->processing_list);
}
void MainWindow::processing_list(QString &line) {
qDebug() << line;
}