|
@ -11,6 +11,7 @@ |
|
|
|
|
|
|
|
|
#include <vector> |
|
|
#include <vector> |
|
|
#include <memory> |
|
|
#include <memory> |
|
|
|
|
|
#include <type_traits> |
|
|
|
|
|
|
|
|
#include "../UThreadObject.h" |
|
|
#include "../UThreadObject.h" |
|
|
|
|
|
|
|
@ -23,10 +24,10 @@ class UTask : public UThreadObject { |
|
|
virtual ~taskBased() = default; |
|
|
virtual ~taskBased() = default; |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
template<typename F> |
|
|
|
|
|
|
|
|
template<typename F, typename T = typename std::decay<F>::type> |
|
|
struct taskDerided : taskBased { |
|
|
struct taskDerided : taskBased { |
|
|
F func_; |
|
|
|
|
|
explicit taskDerided(F&& func) : func_(std::move(func)) {} |
|
|
|
|
|
|
|
|
T func_; |
|
|
|
|
|
explicit taskDerided(F&& func) : func_(std::forward<F>(func)) {} |
|
|
CVoid call() override { func_(); } |
|
|
CVoid call() override { func_(); } |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|