Iros
Loading...
Searching...
No Matches
expected_can_convert_constructor.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/meta/operations.h
"
4
#include "
di/vocab/expected/expected_forward_declaration.h
"
5
#include "
di/vocab/expected/unexpected.h
"
6
7
namespace
di::concepts::detail
{
8
template
<
typename
T,
typename
E,
typename
U,
typename
G>
9
concept
ExpectedCanConvertConstructor
=
10
(!
ConstructibleFrom<T, vocab::Expected<U, G>
> && !
ConstructibleFrom<T, vocab::Expected<U, G>
const
> &&
11
!
ConstructibleFrom<T, vocab::Expected<U, G>
&> && !
ConstructibleFrom<T, vocab::Expected<U, G>
const
&> &&
12
!
ConvertibleTo<vocab::Expected<U, G>
, T> && !
ConvertibleTo<vocab::Expected<U, G>
const
, T> &&
13
!
ConvertibleTo<vocab::Expected<U, G>
&, T> && !
ConvertibleTo<vocab::Expected<U, G>
const
&, T> &&
14
(
concepts::LanguageVoid<E>
|| (!
ConstructibleFrom<vocab::Unexpected<E>
,
vocab::Expected<U, G>
> &&
15
!
ConstructibleFrom<vocab::Unexpected<E>
,
vocab::Expected<U, G>
const
> &&
16
!
ConstructibleFrom<vocab::Unexpected<E>
,
vocab::Expected<U, G>
&> &&
17
!
ConstructibleFrom<vocab::Unexpected<E>
,
vocab::Expected<U, G>
const
&>) ));
18
}
di::vocab::Expected
Definition
expected_forward_declaration.h:8
di::concepts::ConstructibleFrom
Definition
operations.h:11
di::concepts::ConvertibleTo
Definition
operations.h:99
di::concepts::LanguageVoid
Definition
core.h:128
di::concepts::detail::ExpectedCanConvertConstructor
Definition
expected_can_convert_constructor.h:9
expected_forward_declaration.h
operations.h
di::concepts::detail
Definition
impl.h:7
unexpected.h
libs
di
include
di
vocab
expected
expected_can_convert_constructor.h
Generated by
1.13.0