YACLib
C++ library for concurrent tasks execution
Loading...
Searching...
No Matches
result_core.cpp
Go to the documentation of this file.
1
#include <
yaclib/algo/detail/core.hpp
>
2
#include <
yaclib/algo/detail/result_core.hpp
>
3
4
namespace
yaclib::detail
{
5
namespace
{
6
7
class
Drop
final
:
public
InlineCore {
8
template
<
bool
SymmetricTransfer>
9
[[
nodiscard
]]
YACLIB_INLINE
auto
Impl(InlineCore& caller)
noexcept
{
10
caller.DecRef();
11
return
Noop<SymmetricTransfer>
();
12
}
13
[[
nodiscard
]] InlineCore* Here(InlineCore& caller)
noexcept
final
{
14
return
Impl<false>
(caller);
15
}
16
#if YACLIB_SYMMETRIC_TRANSFER != 0
17
[[
nodiscard
]] yaclib_std::coroutine_handle<>
Next
(InlineCore& caller)
noexcept
final
{
18
return
Impl<true>
(caller);
19
}
20
#endif
21
};
22
23
static
Drop
kDropCore
;
24
25
}
// namespace
26
27
template
class
ResultCore<void, StopError>
;
28
29
InlineCore
&
MakeDrop
()
noexcept
{
30
return
kDropCore
;
31
}
32
33
}
// namespace yaclib::detail
yaclib::detail::InlineCore
Definition
inline_core.hpp:13
core.hpp
yaclib::detail
Definition
base_core.hpp:18
yaclib::detail::MakeDrop
InlineCore & MakeDrop() noexcept
Definition
result_core.cpp:29
yaclib::MakeContract
Contract< V, E > MakeContract()
Creates related future and promise.
Definition
contract.hpp:25
result_core.hpp
src
algo
result_core.cpp
Generated by
1.9.8