16template <
typename V,
typename E>
18 template <
bool SymmetricTransfer>
28#if YACLIB_SYMMETRIC_TRANSFER != 0
37 template <
typename...
Args>
46 template <
typename...
Args>
47 void Store(
Args&&...
args)
noexcept(std::is_nothrow_constructible_v<Result<V, E>,
Args&&...>) {
63template <
typename V,
typename E>
Reference counting interface.
A intrusive pointer to objects with an embedded reference count.
Encapsulated return value from caller.
~ResultCore() noexcept override
ResultCore(Args &&... args) noexcept(std::is_nothrow_constructible_v< Result< V, E >, Args &&... >)
Result< V, E > & Get() noexcept
void Store(Args &&... args) noexcept(std::is_nothrow_constructible_v< Result< V, E >, Args &&... >)
InlineCore * Here(InlineCore &caller) noexcept override
#define YACLIB_PURE_VIRTUAL()
Contract< V, E > MakeContract()
Creates related future and promise.