Вызов функции-члена как функции потока с использованием boost

Я попытался вызвать функцию-член как функцию потока, используя следующее утверждение

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();
}

0

Решение

внутренние потоки используют внутреннее связывание, поэтому:

#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();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector