I'm trying to use the C++11's std::thread
class to run a member function of a class to execute in parallel.
The header file's code is similar to:
class SomeClass {
vector<int> classVector;
void threadFunction(bool arg1, bool arg2);
public:
void otherFunction();
};
The cpp file is similar to:
void SomeClass::threadFunction(bool arg1, bool arg2) {
//thread task
}
void SomeClass::otherFunction() {
thread t1(&SomeClass::threadFunction, arg1, arg2, *this);
t1.join();
}
I am using Xcode 4.6.1 under Mac OS X 10.8.3. The compiler I am using is Apple LLVM 4.2 which came with the Xcode.
The above code does not work. The compiler error says that "Attempted to use deleted function"
.
On the line of thread creation it shows the following massage.
In instantiation of function template specialization 'std::__1::thread::thread<void (SomeClass::*)(bool, bool), bool &, bool &, FETD2DSolver &, void>' requested here
I'm new in C++11 and the thread class. Could someone help me?
.join()
immediatly. – Birt