&&>::value': result type must be constructible from value type of input range
c++
ThreadPool::ThreadPool(size_t pool_size) : pool_size(pool_size) {
workers.reserve(pool_size);
}
class ThreadPool {
public:
explicit ThreadPool(size_t pool_size);
private:
std::vector<ThreadWorker> workers;
size_t current_thread = 0;
size_t pool_size = 0;
std::mutex mutex{};
};
Хм вроде понимаю в чем ошибка
что нет конструктора &&
но разве это норм идея решения?
Ерунду делаешь. Просто создай обработчики сразу
обработчики чего?
как бы вы эту ошибку грамотно решили?
когда вообще имеет смысл делает unique_ptr ?
Когда нужна динамическая аллокация и точно известен владелец.
это же как раз мой случай и ошибка отчасти намекает на это?
У вас не понятно, потому что не понятно, что такое ThreadWorker и movable ли он.
class ThreadWorker { public: ThreadWorker(); ~ThreadWorker(); private: static void *worker(void *arg); std::mutex mutex; std::vector<pollfd> fds; size_t fds_size = 0; std::thread thread; };
mutex нельзя копировать и мувать
А куда его мне копировать? Мне нужно лист из таких воркеров один раз инициализировать и все
https://pastebin.com/RJ7YgwuX Полный лог компиляции
Обсуждают сегодня