Iros
 
Loading...
Searching...
No Matches
vocab.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/meta/core.h"
4#include "di/meta/function.h"
5#include "di/meta/language.h"
6#include "di/types/integers.h"
11
12namespace di::vocab {
13template<typename T, usize size>
14struct Array;
15}
16
17namespace di::concepts {
18namespace detail {
19 template<typename T>
20 constexpr inline bool array_helper = false;
21
22 template<typename T, usize size>
23 constexpr inline bool array_helper<vocab::Array<T, size>> = true;
24}
25
26template<typename T>
28
29template<typename T>
31}
32
33namespace di::meta {
34template<concepts::Expected T>
36
37template<concepts::Expected T>
39
40template<typename T>
41constexpr inline auto ExpectedRank = 0ZU;
42
43template<concepts::Expected T>
45
46namespace detail {
47 template<typename T, typename U>
49
50 template<typename X, typename E, typename U>
53
54 template<typename X, typename E, typename U>
57}
58
59template<typename T, typename U>
61
62template<typename T>
64}
65
66namespace di::concepts {
67template<typename Exp, typename T>
69
70template<typename Exp, typename T>
72
73template<typename Fal, typename T>
75
76template<typename T>
78}
79
80namespace di::meta {
81template<concepts::Optional T>
83
84template<typename T>
85constexpr inline auto OptionalRank = 0ZU;
86
87template<concepts::Optional T>
89}
90
91namespace di::concepts {
92template<typename Opt, typename T>
94}
95
96namespace di::util {
97template<typename T>
99}
100
101namespace di::concepts {
102template<typename T>
104}
105
106namespace di::meta {
107namespace detail {
108 template<typename T>
110
111 template<concepts::LValueReference T>
112 struct WrapReference<T> : TypeConstant<util::ReferenceWrapper<RemoveReference<T>>> {};
113}
114
115template<typename T>
117
118namespace detail {
119 template<typename T>
121
122 template<concepts::ReferenceWrapper T>
123 struct UnwrapReferenceHelper<T> : TypeConstant<typename T::Value&> {};
124}
125
126template<typename T>
128
129template<typename T>
131
132template<typename T>
134}
135
136namespace di::concepts {
137namespace detail {
138 template<typename T>
139 constexpr inline bool span_helper = false;
140
141 template<typename T, usize extent>
142 constexpr inline bool span_helper<vocab::Span<T, extent>> = true;
143}
144
145template<typename T>
147
148template<typename T>
150
151template<typename T>
153}
Definition reference_wrapper.h:14
Definition expected_forward_declaration.h:8
Definition optional_forward_declaration.h:5
Definition tuple_forward_declaration.h:5
Definition unexpected.h:14
Definition vocab.h:27
Definition vocab.h:71
Definition vocab.h:68
Definition vocab.h:30
Definition core.h:139
Definition core.h:128
Definition vocab.h:74
Definition vocab.h:93
Definition vocab.h:77
Definition vocab.h:103
Definition core.h:114
Definition vocab.h:146
Definition vocab.h:149
Definition vocab.h:152
Definition impl.h:7
constexpr bool span_helper
Definition vocab.h:139
constexpr bool array_helper
Definition vocab.h:20
Definition any_storable.h:9
Definition json_deserializer.h:532
Definition const_sentinel.h:8
Definition merge_interfaces.h:6
Invoke< Conditional< concepts::Expected< T >, meta::Quote< ExpectedValue >, meta::TypeConstant< T > >, T > UnwrapExpected
Definition vocab.h:63
detail::WrapReference< T >::Type WrapReference
Definition vocab.h:116
detail::UnwrapReferenceHelper< T >::Type UnwrapReference
Definition vocab.h:127
T::Type Type
Definition core.h:26
RemoveCV< RemoveReference< T > > RemoveCVRef
Definition core.h:74
constexpr auto OptionalRank
Definition vocab.h:85
meta::RemoveCVRef< T >::Value OptionalValue
Definition vocab.h:82
meta::RemoveCVRef< T >::Error ExpectedError
Definition vocab.h:38
constexpr auto ExpectedRank
Definition vocab.h:41
UnwrapReference< Decay< T > > UnwrapRefDecay
Definition vocab.h:130
Type< detail::LikeExpectedHelper< T, U > > LikeExpected
Definition vocab.h:60
Conditional< concepts::RValueReference< T >, RemoveReference< T >, T > RemoveRValueReference
Definition language.h:471
Type< Defer< Fun::template Invoke, Args... > > Invoke
Definition function.h:43
meta::RemoveCVRef< T >::Value ExpectedValue
Definition vocab.h:35
RemoveRValueReference< UnwrapReference< T > > UnwrapRefRValue
Definition vocab.h:133
Definition vocab.h:96
Definition lazy.h:165
Definition function.h:30
Definition core.h:18
T Type
Definition core.h:19
Definition vocab.h:109
Definition span_fixed_size.h:37