История изменений
Исправление Deleted, (текущая версия) :
std::fill() заполняет копией одного и того же элемента. То есть, если бы std::thread был копируемым, тебе бы один и тот же тред раскопировало на весь пул.
Тебе нужен std::generate() или что-то типа него:
std::generate(pool.begin(), pool.end(), []() {return std::thread([=](){tasks->run();});});
Исправление Deleted, :
std::fill() заполняет копией одного и того же элемента. То есть, если бы std::thread был копируемым, тебе бы один и тот же тред раскопировало на весь пул.
Тебе нужен std::generate или что-то типа него:
std::generate(pool.begin(), pool.end(), []() {return std::thread([=](){tasks->run();});});
Исходная версия Deleted, :
std::fill() заполняет копией одного и того же элемента. То есть, если бы std::thread был бы копируемым, тебе бы один и тот же тред раскопировало на весь пул.
Тебе нужен std::generate или что-то типа него:
std::generate(pool.begin(), pool.end(), []() {return std::thread([=](){tasks->run();});});