ich schreibe grad an was wofür ich blockingMap verwenden wollte. Funktioniert auch prinzipiell, nur will ich das innerhalb einer Klasse verwenden, und das wiederum bringt mir nur einen verwirrenden compile time error.
Ich habe mich eigentlich an die Qt Dokumentation gehalten (hier), aber irgendwas scheine ich falsch zu machen. Hier ein minimales Beispielprogramm, bei dem der selbe Fehler auftritt:
Code: Alles auswählen
#include <QtCore>
class Testclass {
public:
Testclass() {
QList<int> integers;
integers << 0 << 1 << 2 << 3 << 4;
QtConcurrent::blockingMap(integers, &Testclass::mapfunction);
}
private:
void mapfunction(int &number) {
number++;
}
};
int main(int argc, char * argv[]) {
QCoreApplication app(argc, argv);
Testclass testinstance;
return app.exec();
}Code: Alles auswählen
c:/Qt/2009.03/qt/include/QtCore/../../src/corelib/concurrent/qtconcurrentmapkernel.h: In member function `bool QtConcurrent::MapKernel<Iterator, MapFunctor>::runIteration(Iterator, int, void*) [with Iterator = QList<int>::iterator, MapFunctor = void (Testclass::*)(int&)]':
main.cpp:12: instantiated from here
c:/Qt/2009.03/qt/include/QtCore/../../src/corelib/concurrent/qtconcurrentmapkernel.h:73: error: must use .* or ->* to call pointer-to-member function in `((QtConcurrent::MapKernel<QList<int>::iterator, void (Testclass::*)(int&)>*)this)->QtConcurrent::MapKernel<QList<int>::iterator, void (Testclass::*)(int&)>::map (...)'Was mache ich falsch?