Как выполнить функцию-член класса в отдельном потоке, используя класс потока C ++ 11?
Я пытаюсь использовать C ++ 11std::thread
класс для запуска функции-члена класса для параллельного выполнения.
Код файла заголовка похож на:
class SomeClass {
vector<int> classVector;
void threadFunction(bool arg1, bool arg2);
public:
void otherFunction();
};
Файл cpp похож на:
void SomeClass::threadFunction(bool arg1, bool arg2) {
//thread task
}
void SomeClass::otherFunction() {
thread t1(&SomeClass::threadFunction, arg1, arg2, *this);
t1.join();
}
Я использую Xcode 4.6.1 под Mac OS X 10.8.3. Я использую компилятор Apple LLVM 4.2, который поставляется с Xcode.
Приведенный выше код не работает. Ошибка компилятора говорит, что"Attempted to use deleted function"
.
На линии создания нити показан следующий массаж.
In instantiation of function template specialization 'std::__1::thread::thread<void (SomeClass::*)(bool, bool), bool &, bool &, FETD2DSolver &, void>' requested here
Я новичок в C ++ 11 и класс потока. Может ли кто-нибудь помочь мне?