/home/alex/oop24/3/libcpu/thread_pool/include/thread_pool.hpp:79:18: note: copy constructor of '(lambda at /home/alex/oop24/3/libcpu/thread_pool/include/thread_pool.hpp:79:17)' is implicitly deleted because field '' has a deleted copy constructor
   79 |                 [promise = std::move(promise), func = std::move(func)]() mutable {


 std::function<void()> f1(std::move(task));
 std::function<void()> f2 ([t = std::move(task)]() mutable { t(); });

/home/alex/oop24/3/libcpu/thread_pool/include/thread_pool.hpp:74:35: note: in instantiation of function template specialization 'std::function<void ()>::function<std::packaged_task<void ()>, void>' requested here
   74 |             std::function<void()> f1(std::move(task));
      |                                   ^
/home/alex/oop24/3/libcpu/thread_pool/include/thread_pool.hpp:75:35: note: in instantiation of function template specialization 'std::function<void ()>::function<(lambda at /home/alex/oop24/3/libcpu/thread_pool/include/thread_pool.hpp:75:39), void>' requested here
   75 |             std::function<void()> f2 ([t = std::move(task)]() mutable { t(); });


queue.emplace([t = std::move(task)]() mutable { t(); });
/home/alex/oop24/3/libcpu/thread_pool/include/thread_pool.hpp:73:28: note: copy constructor of '(lambda at /home/alex/oop24/3/libcpu/thread_pool/include/thread_pool.hpp:73:27)' is implicitly deleted because field '' has a deleted copy constructor
   73 |             queue.emplace([t = std::move(task)]() mutable { t(); });
      |                            ^
/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/future:1604:7: note: 'packaged_task' has been explicitly marked deleted here
 1604 |       packaged_task(const packaged_task&) = delete;
      |       ^