У меня есть функция, подобная этой, для простого пула потоков для постановки задач на нее, следующие подписи:
template<class Fn, class... Args>
void Enqueue(Fn&& fn, Args&&... args);
void EnqueueBasic(std::function<void()>&& task);
Одна для сложных функций, которые имеют любое количество параметров, а другая - ссылка на значение для простой функции, которая сохраняет функтор в фиксированной очереди следующим образом:
(определение EnqueueBasic)
_pendingTasks.push_overflow(eastl::forward<PendingTask>(task));
(определение в очереди)
EnqueueBasic(std::bind(std::forward<Fn>(fn), std::forward<Args>(args)...));
Это прекрасно работает, но я хочу заменить его на лямбды, как я могу заменить std::bind
на простую лямбду ?, так как я пытаюсь научиться работать с лямбдами на С ++, но это меня немного смутило .
Спасибо.