11template <
typename V,
typename T>
17template <
typename Waited,
typename = std::enable_if_t<is_waitable_v<Waited>>>
27template <
typename It,
typename = std::enable_if_t<is_input_iterator_v<It> &&
28 is_waitable_v<
typename std::iterator_traits<It>::value_type>>>
33template <
typename It,
typename Sentinel,
34 typename = std::enable_if_t<is_input_range_pair_v<It, Sentinel> &&
39 "Use Await(begin, std::distance(begin, end)) instead");
45template <
typename Range,
typename = std::enable_if_t<
52template <
typename V,
typename T>
58template <
typename V,
typename T>
64template <
typename V,
typename T>
Provides a mechanism to access the result of async operations.
Provides a mechanism to schedule the some async operations TODO(MBkkt) add description.
#define YACLIB_ASSERT(cond)
Contract< V, T > MakeContract()
Creates related future and promise.
YACLIB_INLINE auto AwaitInline(Waited &waited) noexcept
YACLIB_INLINE auto Await(Task< V, T > &task) noexcept