/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 f1(std::move(task)); std::function 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::function, void>' requested here 74 | std::function 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::function<(lambda at /home/alex/oop24/3/libcpu/thread_pool/include/thread_pool.hpp:75:39), void>' requested here 75 | std::function 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; | ^