mirror of
https://github.com/ml-explore/mlx.git
synced 2025-07-15 21:21:16 +08:00
Replace the use of result_of_t
with invoke_result_t
(#1397)
* Fix C++20 incompatibility * Fix C++20 incompatibility
This commit is contained in:
parent
efeb9c0f02
commit
dc627dcb5e
@ -37,7 +37,7 @@ class ThreadPool {
|
|||||||
ThreadPool(size_t);
|
ThreadPool(size_t);
|
||||||
template <class F, class... Args>
|
template <class F, class... Args>
|
||||||
auto enqueue(F&& f, Args&&... args)
|
auto enqueue(F&& f, Args&&... args)
|
||||||
-> std::future<typename std::result_of_t<F(Args...)>>;
|
-> std::future<typename std::invoke_result_t<F, Args...>>;
|
||||||
~ThreadPool();
|
~ThreadPool();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -71,8 +71,8 @@ inline ThreadPool::ThreadPool(size_t threads) : stop(false) {
|
|||||||
|
|
||||||
template <class F, class... Args>
|
template <class F, class... Args>
|
||||||
auto ThreadPool::enqueue(F&& f, Args&&... args)
|
auto ThreadPool::enqueue(F&& f, Args&&... args)
|
||||||
-> std::future<typename std::result_of_t<F(Args...)>> {
|
-> std::future<typename std::invoke_result_t<F, Args...>> {
|
||||||
using return_type = typename std::result_of_t<F(Args...)>;
|
using return_type = typename std::invoke_result_t<F, Args...>;
|
||||||
|
|
||||||
auto task = std::make_shared<std::packaged_task<return_type()>>(
|
auto task = std::make_shared<std::packaged_task<return_type()>>(
|
||||||
std::bind(std::forward<F>(f), std::forward<Args>(args)...));
|
std::bind(std::forward<F>(f), std::forward<Args>(args)...));
|
||||||
|
Loading…
Reference in New Issue
Block a user