9template <
typename V,
typename E>
18#if YACLIB_SYMMETRIC_TRANSFER != 0
25 if constexpr (std::is_move_constructible_v<Result<V, E>>) {
40 return BaseCore::SetCallbackImpl<false>(
callback);
51 template <
bool SymmetricTransfer>
53 return BaseCore::SetInlineImpl<SymmetricTransfer, false>(
callback);
56 template <
bool SymmetricTransfer>
58 return BaseCore::SetResultImpl<SymmetricTransfer, false>();
64template <
typename V,
typename E>
virtual void DecRef() noexcept
Decrements reference counter.
A intrusive pointer to objects with an embedded reference count.
Encapsulated return value from caller.
void StoreCallbackImpl(InlineCore &callback) noexcept
Result< V, E > & Get() noexcept
InlineCore * Here(InlineCore &caller) noexcept override
Transfer< SymmetricTransfer > SetResult() noexcept
Result< V, E > Retire() final
void StoreCallback(InlineCore &callback) noexcept
void CallInline(InlineCore &callback) noexcept
Transfer< SymmetricTransfer > SetInline(InlineCore &callback) noexcept
bool SetCallback(InlineCore &callback) noexcept
#define YACLIB_ASSERT(cond)
#define YACLIB_PURE_VIRTUAL()
Contract< V, E > MakeContract()
Creates related future and promise.