Код: Выделить всё
using Task = std::function;
std::queue tasks_;
template
auto ThreadPool::submitTask(F &&f, Args &&... args) -> std::future {
using RetType = decltype(f(args...));
auto task = std::make_shared(
std::bind(std::forward(f), std::forward(args)...));
std::future res = task->get_future();
//
{
std::unique_lock lock(mutex_);
if (!notFullCondition_.wait_for(lock, std::chrono::seconds(1),
[&] { return taskSize_.load() < taskQueueThreshold_; })) {
std::cerr std::future {
using RetType = decltype(f(args...));
std::packaged_task task(std::bind(std::forward(f), std::forward(args)...));
std::future res = task.get_future();
//
{
std::unique_lock lock(mutex_);
if (!notFullCondition_.wait_for(lock, std::chrono::seconds(1),
[&] { return taskSize_.load() < taskQueueThreshold_; })) {
std::cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/79305076/can-packaged-taskvoid-type-objects-be-stored-in-queue[/url]