Como executar uma função de membro de classe em um segmento separado usando a classe de segmento C ++ 11?
Estou tentando usar o C ++ 11'sstd::thread
class para executar uma função de membro de uma classe para executar em paralelo.
O código do arquivo de cabeçalho é semelhante a:
class SomeClass {
vector<int> classVector;
void threadFunction(bool arg1, bool arg2);
public:
void otherFunction();
};
O arquivo cpp é semelhante a:
void SomeClass::threadFunction(bool arg1, bool arg2) {
//thread task
}
void SomeClass::otherFunction() {
thread t1(&SomeClass::threadFunction, arg1, arg2, *this);
t1.join();
}
Estou usando o Xcode 4.6.1 no Mac OS X 10.8.3. O compilador que estou usando é o Apple LLVM 4.2, que veio com o Xcode.
O código acima não funciona. O erro do compilador diz que"Attempted to use deleted function"
.
Na linha de criação de linhas, mostra a seguinte massagem.
In instantiation of function template specialization 'std::__1::thread::thread<void (SomeClass::*)(bool, bool), bool &, bool &, FETD2DSolver &, void>' requested here
Eu sou novo em C + + 11 e a classe de segmento. Alguém poderia me ajudar?