@@ -24,9 +24,9 @@ namespace mgis {
2424 struct ThreadPool ::Wrapper {
2525 Wrapper (F&& f_) : f(f_) {}
2626 template <typename ... Args>
27- ThreadedTaskResult<typename std::result_of <F(Args...)>::type> operator ()(
27+ ThreadedTaskResult<typename std::invoke_result <F(Args...)>::type> operator ()(
2828 Args&&... args) {
29- using result = typename std::result_of <F (Args...)>::type;
29+ using result = typename std::invoke_result <F (Args...)>::type;
3030 using apply = typename std::conditional<std::is_same<result, void >::value,
3131 GetVoid, Get<result>>::type;
3232 ThreadedTaskResult<result> r;
@@ -61,10 +61,10 @@ namespace mgis {
6161
6262 // add new work item to the pool
6363 template <typename F, typename ... Args>
64- std::future<ThreadedTaskResult<typename std::result_of <F(Args...)>::type>>
64+ std::future<ThreadedTaskResult<typename std::invoke_result <F(Args...)>::type>>
6565 ThreadPool::addTask (F&& f, Args&&... a) {
6666 using return_type =
67- ThreadedTaskResult<typename std::result_of <F (Args...)>::type>;
67+ ThreadedTaskResult<typename std::invoke_result <F (Args...)>::type>;
6868 using task = std::packaged_task<return_type ()>;
6969 auto t = std::make_shared<task>(
7070 std::bind (Wrapper<F>(std::forward<F>(f)), std::forward<Args>(a)...));
0 commit comments