47template <
typename RetT>
57 template <
typename... Args>
74 virtual RetT
get() = 0;
80template <
typename RetT,
typename... Args>
93 template <
typename FuncT>
100 template <
typename FuncT>
120 virtual RetT
get() final {
return m_ptask.get_future().get(); }
130template <
typename RetT,
typename... Args>
142 template <
typename FuncT>
149 template <
typename FuncT>
150 Task(
bool _is_native, intmax_t _depth, FuncT func, Args...
args)
173 virtual RetT
get() final {
return m_ptask.get_future().get(); }
183template <
typename RetT>
194 template <
typename FuncT>
200 template <
typename FuncT>
201 Task(
bool _is_native, intmax_t _depth, FuncT func)
219 virtual RetT
get() final {
return m_ptask.get_future().get(); }
240 template <
typename FuncT>
246 template <
typename FuncT>
247 Task(
bool _is_native, intmax_t _depth, FuncT func)
The task class is supplied to thread_pool.
PackagedTask(const PackagedTask &)=delete
std::packaged_task< RetT(Args...)> packaged_task_type
std::tuple< Args... > tuple_type
std::promise< RetT > promise_type
PackagedTask(bool _is_native, intmax_t _depth, FuncT func, Args... args)
PackagedTask(FuncT func, Args... args)
virtual future_type get_future() final
packaged_task_type m_ptask
PackagedTask & operator=(const PackagedTask &)=delete
virtual ~PackagedTask()=default
PackagedTask & operator=(PackagedTask &&)=default
std::future< RetT > future_type
virtual void wait() final
virtual void operator()() final
PackagedTask< RetT, Args... > this_type
PackagedTask(PackagedTask &&)=default
The task class is supplied to thread_pool.
TaskFuture(const TaskFuture &)=delete
TaskFuture & operator=(const TaskFuture &)=delete
std::future< RetT > future_type
TaskFuture(Args &&... args)
virtual ~TaskFuture()=default
TaskFuture(TaskFuture &&)=default
TaskFuture & operator=(TaskFuture &&)=default
virtual future_type get_future()=0
std::promise< RetT > promise_type
Task & operator=(const Task &)=delete
std::promise< RetT > promise_type
Task(bool _is_native, intmax_t _depth, FuncT func)
std::packaged_task< RetT()> packaged_task_type
Task(const Task &)=delete
Task & operator=(Task &&)=default
virtual future_type get_future() final
std::future< RetT > future_type
virtual void wait() final
virtual void operator()() final
The task class is supplied to thread_pool.
Task & operator=(Task &&)=default
Task & operator=(const Task &)=delete
std::future< RetT > future_type
std::packaged_task< RetT()> packaged_task_type
Task(bool _is_native, intmax_t _depth, FuncT func)
virtual void operator()() final
Task< void, void > this_type
virtual void wait() final
Task(const Task &)=delete
std::promise< RetT > promise_type
virtual future_type get_future() final
The task class is supplied to thread_pool.
Task & operator=(const Task &)=delete
Task(FuncT func, Args... args)
std::tuple< Args... > tuple_type
Task & operator=(Task &&)=default
std::promise< RetT > promise_type
std::future< RetT > future_type
virtual void wait() final
virtual void operator()() final
Task(bool _is_native, intmax_t _depth, FuncT func, Args... args)
Task(const Task &)=delete
std::packaged_task< RetT(Args...)> packaged_task_type
packaged_task_type m_ptask
Task< RetT, Args... > this_type
virtual future_type get_future() final
VTask is the abstract class stored in thread_pool.
static void apply(FnT &&_func, TupleT &&_args)