1#ifndef NEFORCE_CORE_ASYNC_ASYNC_HPP__
2#define NEFORCE_CORE_ASYNC_ASYNC_HPP__
14NEFORCE_BEGIN_NAMESPACE__
42template <
typename Func,
typename... Args>
45 using AsyncState = inner::__future_base::async_state_impl<Wrapper,
async_result_t<Func, Args...>>;
46 using DeferredState = inner::__future_base::deferred_state<Wrapper,
async_result_t<Func, Args...>>;
69template <
typename Func,
typename... Args>
79NEFORCE_END_NAMESPACE__
NEFORCE_NODISCARD constexpr T && forward(remove_reference_t< T > &x) noexcept
完美转发左值
invoke_result_t< decay_t< Func >, decay_t< Args >... > async_result_t
异步调用结果类型推导
NEFORCE_NODISCARD future< async_result_t< Func, Args... > > async(launch policy, Func &&function, Args &&... args)
异步执行函数(指定策略)
enable_if_t<!is_unbounded_array_v< T > &&is_constructible_v< T, Args... >, shared_ptr< T > > make_shared(Args &&... args)
融合分配创建共享指针
constexpr Iterator2 move(Iterator1 first, Iterator1 last, Iterator2 result) noexcept(noexcept(inner::__move_aux(first, last, result)))
移动范围元素