Передача QString в качестве параметра в QFuture
Мне нужно передать имя файла как QString с путем к функции, охватываемой QFuture и наблюдаемой QFutureWatcher, но этой функции будет передан только первый символ этой QString. Вот объявление в файле *.h:
qint64 processDataFile(const QString &fileName);
...
QFutureWatcher<qint64> *watcher;
И вот вызов функции:
watcher = new QFutureWatcher<qint64>;
connect(watcher, &QFutureWatcher<qint64>::finished, this, &SmartDCPD::fileProcessingFinished);
qDebug() << log.fileName; // something like C:/users/.....
watcher->setFuture(QtConcurrent::mapped(log.fileName, std::bind(&SmartDCPD::processDataFile, this, std::placeholders::_1)));
И код функции:
qint64 SmartDCPD::processDataFile(const QString &fileName)
{
qDebug() << fileName; //Only C (just the first char of the whole QString)
QElapsedTimer t;
t.start();
rapidcsv::Document doc(fileName.toUtf8().constData(), rapidcsv::LabelParams(-1, -1), rapidcsv::SeparatorParams(';'));
QString stamp = QDateTime::currentDateTime().toString("dd.MM.yyyy hh:mm:ss.zzz");
doc.SetCell<std::string>(1, 2, stamp.toUtf8().constData());
doc.Save();
return t.nsecsElapsed() / 1000000;
}
Что я делаю не так?