9template <
typename V,
typename E>
12 template <
typename...
Args>
30#if YACLIB_SYMMETRIC_TRANSFER != 0
42template <
typename V =
Unit,
typename E = StopError,
typename...
Args>
44 if constexpr (
sizeof...(Args) == 0) {
45 using T = std::conditional_t<std::is_same_v<V, Unit>,
void, V>;
47 }
else if constexpr (std::is_same_v<V, Unit>) {
49 using T = std::conditional_t<std::is_same_v<T0, Unit>,
void,
T0>;
A intrusive pointer to objects with an embedded reference count.
Provides a mechanism to schedule the some async operations TODO(MBkkt) add description.
void Call() noexcept final
ReadyCore(Args &&... args) noexcept(std::is_nothrow_constructible_v< Result< V, E >, Args &&... >)
InlineCore * Here(InlineCore &) noexcept final
void Drop() noexcept final
void Store(Args &&... args) noexcept(std::is_nothrow_constructible_v< Result< V, E >, Args &&... >)
YACLIB_INLINE void Loop(InlineCore *prev, InlineCore *curr) noexcept
typename detail::Head< Args... >::Type head_t
Contract< V, E > MakeContract()
Creates related future and promise.
auto MakeTask(Args &&... args)
TODO(MBkkt) add description.