LINUX.ORG.RU

История изменений

Исправление 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();});});