Я хотел использовать повышение :: нить в моей программе, но получить следующее сообщение об ошибке компилятора (Visual Studio 2005):подталкивание: нить - ошибка компилятора
Error 1 **error C2064**: term does not evaluate to a function taking 0
arguments d:\...\boost_1_37_0\boost\thread\detail\thread.hpp 56
Поэтому я попытался воссоздать эту проблему в небольшой и изменил рабочий пример Hello World от this site.
Мой тестовый код теперь выглядит следующим образом. Почему это не работает в классе ?:
#include <boost/thread.hpp>
#include <iostream>
class HelloWorld
{
public:
void hello();
void entry();
};
void HelloWorld::entry()
{
boost::thread thrd(&HelloWorld::hello);
thrd.join();
}
void HelloWorld::hello()
{
std::cout << "Hello world, I'm a thread!" << std::endl;
}
int main(int argc, char* argv[])
{
HelloWorld *bla = new HelloWorld;
bla->entry();
return 0;
}
большое спасибо! Теперь он работает с вашим решением. /mspoerr – mspoerr
Рад помочь. Ссылки на функции членов и привязка всегда были пятном, которое меня тоже путало. –