void ThreadFn(int& i)
{
cout<<"Hi from thread "<<i<<endl;
}
int x = 0;
void CreateThreads(vector<thread>& workers)
{
for(int i = 0; i< 10; i++)
{
workers.push_back(thread(&ThreadFn, x));
}
}
Я ожидал, что ошибка компиляции в создании потоков (workers.push_back(thread(&ThreadFn, x));
) с x
должен быть принят исх. я, хотя правильный синтаксис должен был:Passing ссылкой на StD :: нить C++ 0x в VS2012
workers.push_back(thread(&ThreadFn, std::ref(x)));
Конечно, код компилируется нормально, а также ведет себя правильно. Я использую VC11
. Любая идея, почему это не помечено?