class Map {
public:
Bird *pB;
Pig *pP;
..........
}
class Grav {
public:
Map *pM;
......
void runBird(Bird &b);
void runPig(Pig &p);
void run(Map &m);
}
void Grav::run(Map &m) {
thread t[2];
t[0] = thread(&Grav::runBird, std::ref(m.pBird[0]));
t[1] = thread(&Grav::runPig, std::ref(m.pPig[0]));
t[0].join();
t[1].join();
}
然后就出现了以下问题,查了好多,有一方法:把runBird(),runPig()改为static,但这样不好,或者说在我这个程序里不可行。
Error C2893 Failed to specialize function template 'unknown-type std::invoke(_Callable &&,_Types &&...)' AngryBird h:\visual studio\vc\include\type_traits 1501