有人能告訴我怎樣才能運行一個新的線程與成員函數從不同類的對象作爲這個類的成員函數?什麼即時嘗試做我仍然得到錯誤。從另一個類的成員函數的類中的線程
no match for call to '(std::thread) (void (Boo::*)(), Boo&)'|
no match for call to '(std::thread) (void (Foo::*)(), Foo*)'|
#include <iostream>
#include <thread>
using namespace std;
class Boo
{
public:
void run()
{
while(1){}
}
};
class Foo
{
public:
void run()
{
t1(&Boo::run,boo);
t2(&Foo::user,this);
}
void user();
~Foo(){
t1.join();
t2.join();
}
private:
std::thread t1;
std::thread t2;
Boo boo;
};
int main()
{
Foo foo;
foo.run();
}
'while(1){}'是UB,參見例如[is-this-infinite-recursion-ub](https://stackoverflow.com/questions/5905155/is-this-infinite-recursion- UB)。 – Jarod42