У меня есть такой код:
#include <iostream>
#include <tbb/tbb.h>
#include <Windows.h>bool MyThread(int something)
{
std::cout << "This is a thread function\n" << std::endl;
for (int i = 0; i < 10000; i++)
{
something++;
Sleep(1);
}
return true;
}
int main ()
{
tbb::tbb_thread pMyThread = tbb::tbb_thread(MyThread, 3);
pMyThread.join();
return 0;
}
Но если я скомпилирую его в VS 2008, он покажет:
ошибка C2248: «tbb :: internal :: tbb_thread_v3 :: tbb_thread_v3»: невозможно получить доступ к закрытому члену, объявленному в классе «tbb :: internal :: tbb_thread_v3»
для первой строки функции main (). Где я не прав?
Скорее всего, это вызывает конструктор копирования, попробуйте это:
tbb::tbb_thread myThread(MyThread, 3);
Если вы можете, вы также должны рассмотреть возможность использования std :: thread, который находится в заголовке
Других решений пока нет …