Iros
Loading...
Searching...
No Matches
in_out_result.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/meta/operations.h
"
4
#include "
di/util/move.h
"
5
6
namespace
di::container
{
7
template
<
typename
In,
typename
Out>
8
struct
InOutResult
{
9
template
<
typename
I,
typename
O>
10
requires
(
concepts::ConvertibleTo<In const&, I>
&&
concepts::ConvertibleTo<Out const&, O>
)
11
constexpr
operator
InOutResult<I, O>
()
const
& {
12
return
{
in
,
out
};
13
}
14
15
template
<
typename
I,
typename
O>
16
requires
(
concepts::ConvertibleTo<In, I>
&&
concepts::ConvertibleTo<Out, O>
)
17
constexpr
operator
InOutResult<I, O>
() && {
18
return
{ util::move(
in
), util::move(
out
) };
19
}
20
21
[[no_unique_address]] In
in
;
22
[[no_unique_address]] Out
out
;
23
};
24
}
di::concepts::ConvertibleTo
Definition
operations.h:99
operations.h
di::container
Definition
sequence.h:12
di::container::InOutResult
Definition
in_out_result.h:8
di::container::InOutResult::in
In in
Definition
in_out_result.h:21
di::container::InOutResult::out
Out out
Definition
in_out_result.h:22
move.h
libs
di
include
di
container
algorithm
in_out_result.h
Generated by
1.13.0