MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
async.hpp
浏览该文件的文档.
1#ifndef MSTL_CORE_ASYNC_ASYNC_HPP__
2#define MSTL_CORE_ASYNC_ASYNC_HPP__
3
11
15
21
36template <typename Func, typename... Args>
37MSTL_NODISCARD future<async_result_t<Func, Args...>>
38async(launch policy, Func&& function, Args&&... args) {
39 using Wrapper = _MSTL call_wrapper<Func, Args...>;
40 using AsyncState = _INNER __future_base::async_state_impl<Wrapper, async_result_t<Func, Args...>>;
41 using DeferredState = _INNER __future_base::deferred_state<Wrapper, async_result_t<Func, Args...>>;
42
44 if ((policy & launch::async) == launch::async) {
47 _MSTL forward<Args>(args)...
48 );
49 }
50 if (!state) {
53 _MSTL forward<Args>(args)...
54 );
55 }
56 return _MSTL future<async_result_t<Func, Args...>>(_MSTL move(state));
57}
58
70template <typename Func, typename... Args>
71MSTL_NODISCARD future<async_result_t<Func, Args...>>
72async(Func&& function, Args&&... args) {
73 return _MSTL async(
76 _MSTL forward<Args>(args)...
77 );
78}
79 // Async
81
83#endif // MSTL_CORE_ASYNC_ASYNC_HPP__
MSTL延迟调用包装
函数包装器主模板声明
独占future类模板
共享智能指针类模板
MSTL_NODISCARD constexpr T && forward(remove_reference_t< T > &x) noexcept
完美转发左值
MSTL_NODISCARD future< async_result_t< Func, Args... > > async(launch policy, Func &&function, Args &&... args)
异步执行函数(指定策略)
invoke_result_t< decay_t< Func >, decay_t< Args >... > async_result_t
异步调用结果类型推导
launch
异步启动策略枚举
@ async
异步执行,在新线程中运行
@ deferred
延迟执行,在获取结果时运行
#define _MSTL
全局命名空间MSTL前缀
#define _INNER
inner命名空间前缀
#define MSTL_END_NAMESPACE__
结束全局命名空间MSTL
#define MSTL_BEGIN_NAMESPACE__
开始全局命名空间MSTL
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)
移动范围元素
MSTL 异步任务包装器
延迟调用包装器