¿Cómo ejecutar una función miembro de clase en un subproceso separado utilizando la clase de subproceso C ++ 11?
Estoy tratando de usar el C ++ 11std::thread
clase para ejecutar una función miembro de una clase para ejecutar en paralelo.
El código del archivo de encabezado es similar a:
class SomeClass {
vector<int> classVector;
void threadFunction(bool arg1, bool arg2);
public:
void otherFunction();
};
El archivo cpp es similar a:
void SomeClass::threadFunction(bool arg1, bool arg2) {
//thread task
}
void SomeClass::otherFunction() {
thread t1(&SomeClass::threadFunction, arg1, arg2, *this);
t1.join();
}
Estoy usando Xcode 4.6.1 bajo Mac OS X 10.8.3. El compilador que estoy usando es Apple LLVM 4.2 que viene con el Xcode.
El código anterior no funciona. El error del compilador dice que"Attempted to use deleted function"
.
En la línea de creación de hilos se muestra el siguiente masaje.
In instantiation of function template specialization 'std::__1::thread::thread<void (SomeClass::*)(bool, bool), bool &, bool &, FETD2DSolver &, void>' requested here
Soy nuevo en C ++ 11 y la clase de hilo. ¿Alguien podría ayudarme?