9template <
typename V,
typename T>
14 template <
typename...
Args>
19 if constexpr (
sizeof...(Args) == 0) {
25 this->
Store(std::current_exception());
42#if YACLIB_SYMMETRIC_TRANSFER != 0
54template <
typename V =
Unit,
typename T = DefaultTrait,
typename...
Args>
56 if constexpr (
sizeof...(Args) == 0) {
57 using Value = std::conditional_t<std::is_same_v<V, Unit>,
void, V>;
59 }
else if constexpr (std::is_same_v<V, Unit>) {
61 using Value = std::conditional_t<std::is_same_v<Head, Unit>,
void, Head>;
A intrusive pointer to objects with an embedded reference count.
Provides a mechanism to schedule the some async operations TODO(MBkkt) add description.
void Drop() noexcept final
InlineCore * Here(InlineCore &) noexcept final
void Call() noexcept final
typename UniqueCore< V, T >::Result Result
ReadyCore(std::in_place_t, Args &&... args)
void Store(Args &&... args)
typename ResultCore< V, T >::Result Result
YACLIB_INLINE void Loop(InlineCore *prev, InlineCore *curr) noexcept
Contract< V, T > MakeContract()
Creates related future and promise.
typename detail::Head< Args... >::Type head_t
auto MakeTask(Args &&... args)
TODO(MBkkt) add description.