Как я могу добавить буст тем в вектор - PullRequest
8 голосов
/ 24 марта 2011

У меня есть что-то вроде этого, которое неверно:

vector<boost::thread> vec;
for(int agent = 1; agent <= numAgents; ++agent)
{
    boost::thread agentThread(sellTickets, agent, numTickets/numAgents);
    vec.push_back(agentThread);
}

Может быть, я должен добавить указатели на boost :: thread в векторе, но тогда я не знаю, как добавить динамически распределенные потокия должен сделать, чтобы сделать эту работу?

Спасибо.

1 Ответ

24 голосов
/ 24 марта 2011
  • У вас должен быть компилятор с поддерживаемой семантикой перемещения, чтобы ваш код работал,
  • или используйте vector<shared_ptr<boost::thread>> с кодом, подобным:

    vec.push_back(make_shared<boost::thread>(sellTickets, agent, numTickets/numAgents));
    
  • или используйте boost::thread_group.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...