Я попытался вызвать функцию-член как функцию потока, используя следующее утверждение
boost::thread getURInHashThread(boost::bind(&Worker::run, this));
где
Worker
это класс и
run()
это метод. У меня есть это утверждение в другой функции-члена того же Worker
класс, поэтому я дал это this
,
Но я получаю ошибку
error:bind is not a member of boost.
Я не могу понять это. Пожалуйста помоги.
Заранее спасибо :).
#include <boost/thread/thread.hpp>
#include <iostream>
class Test
{
public:
void Main() { boost::thread t(&Test::run, this); }
void run() { while(1){ std::cout << "some functionality here"; } }
};
int main()
{
Test test;
test.Main();
}
внутренние потоки используют внутреннее связывание, поэтому:
#include <boost/thread/thread.hpp>
#include <iostream>
class Test
{
public:
void Main() { std::cout << "hello" << std::endl; }
};
int main()
{
Test test;
boost::thread t(&Test::Main, test);
t.join();
}
Других решений пока нет …