Wie führe ich eine Klassenmitgliedsfunktion in einem separaten Thread mit der Thread-Klasse C ++ 11 aus?

Ich versuche, die C ++ 11 zu verwendenstd::thread class, um eine Mitgliedsfunktion einer Klasse auszuführen, die parallel ausgeführt werden soll.

Der Code der Header-Datei ähnelt:

class SomeClass {
    vector<int> classVector;
    void threadFunction(bool arg1, bool arg2);
public:
    void otherFunction();
};

Die cpp-Datei ähnelt:

void SomeClass::threadFunction(bool arg1, bool arg2) {
    //thread task
}

void SomeClass::otherFunction() {
    thread t1(&SomeClass::threadFunction, arg1, arg2, *this);
    t1.join();
}

Ich verwende Xcode 4.6.1 unter Mac OS X 10.8.3. Der von mir verwendete Compiler ist Apple LLVM 4.2, das mit dem Xcode geliefert wurde.

Der obige Code funktioniert nicht. Der Compiler-Fehler besagt das"Attempted to use deleted function".

In der Zeile der Thread-Erstellung wird die folgende Massage angezeigt.

In instantiation of function template specialization 'std::__1::thread::thread<void (SomeClass::*)(bool, bool), bool &, bool &, FETD2DSolver &, void>' requested here

Ich bin neu in C ++ 11 und der Thread-Klasse. Könnte mir jemand helfen?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage