我试图通过与参数的函数形成一类到一个线程在main.cpp中多线程C++,从一类传递函数用参数到主
这是错误我'm得到:
“错误1错误C2064:术语不计算为带1个参数的函数c:\ program files(x86)\ microsoft visual studio 12.0 \ vc \ include \ functional 1149 1 The Dining Philosophers Problem”
我似乎无法得到它的工作。这是我到目前为止有:
Philosophers Philosopher;
thread Philosopher_Thread[NUMBEROFPHILOSOPHERS];
int main()
{
for (int Philosopher_Num = 0; Philosopher_Num < NUMBEROFPHILOSOPHERS; Philosopher_Num++)
{
if (Philosopher.Iterations[Philosopher_Num] > 0)
{
Philosopher_Thread[Philosopher_Num] = thread (std::bind(&Philosophers::Hierarchy_Function, &Philosopher_Num)); // Create threads for each philosopher
Philosopher_Thread[Philosopher_Num].join(); //join threads
}
}
}
class.h
class Philosophers
{
public:
void Initialise();
void Hierarchy_Function(int Current_Philosopher);
}
class.cpp
void Philosophers::Hungry_Hierarchy(int Current_Philosopher)
{
//code//
}
你在使用'std :: thread'吗? – erip
疯狂的猜测 - 该功能需要一个对象,尝试添加一个静态关键字(尽管编译器消息建议别的东西,我不会对这些信任很多) – hauron
是的,我是。@erup –