Iros
Loading...
Searching...
No Matches
out_value_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
Out,
typename
Val>
8
struct
OutValueResult
{
9
template
<
typename
I,
typename
V>
10
requires
(
concepts::ConvertibleTo<Out const&, I>
&&
concepts::ConvertibleTo<Val const&, V>
)
11
constexpr
operator
OutValueResult<I, V>
()
const
& {
12
return
{
out
,
value
};
13
}
14
15
template
<
typename
I,
typename
V>
16
requires
(
concepts::ConvertibleTo<Out, I>
&&
concepts::ConvertibleTo<Val, V>
)
17
constexpr
operator
OutValueResult<I, V>
() && {
18
return
{ util::move(
out
), util::move(
value
) };
19
}
20
21
[[no_unique_address]] Out
out
;
22
[[no_unique_address]] Val
value
;
23
};
24
}
di::concepts::ConvertibleTo
Definition
operations.h:99
operations.h
di::container
Definition
sequence.h:12
di::container::OutValueResult
Definition
out_value_result.h:8
di::container::OutValueResult::out
Out out
Definition
out_value_result.h:21
di::container::OutValueResult::value
Val value
Definition
out_value_result.h:22
move.h
libs
di
include
di
container
algorithm
out_value_result.h
Generated by
1.13.0