Iros
Loading...
Searching...
No Matches
in_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
In1,
typename
In2,
typename
O>
8
struct
InInOutResult
{
9
template
<
typename
I1,
typename
I2,
typename
OO>
10
requires
(
concepts::ConvertibleTo<In1 const&, I1>
&&
concepts::ConvertibleTo<In2 const&, I2>
&&
11
concepts::ConvertibleTo<O const&, OO>
)
12
constexpr
operator
InInOutResult<I1, I2, OO>
()
const
& {
13
return
{
in1
,
in2
,
out
};
14
}
15
16
template
<
typename
I1,
typename
I2,
typename
OO>
17
requires
(
concepts::ConvertibleTo<In1, I1>
&&
concepts::ConvertibleTo<In2, I2>
&&
concepts::ConvertibleTo<O, OO>
)
18
constexpr
operator
InInOutResult<I1, I2, OO>
() && {
19
return
{ util::move(
in1
), util::move(
in2
), util::move(
out
) };
20
}
21
22
[[no_unique_address]] In1
in1
;
23
[[no_unique_address]] In2
in2
;
24
[[no_unique_address]] O
out
;
25
};
26
}
di::concepts::ConvertibleTo
Definition
operations.h:99
operations.h
di::container
Definition
sequence.h:12
di::container::InInOutResult
Definition
in_in_out_result.h:8
di::container::InInOutResult::in1
In1 in1
Definition
in_in_out_result.h:22
di::container::InInOutResult::in2
In2 in2
Definition
in_in_out_result.h:23
di::container::InInOutResult::out
O out
Definition
in_in_out_result.h:24
move.h
libs
di
include
di
container
algorithm
in_in_out_result.h
Generated by
1.13.0