47 {
48
50
51 {
53
54 constexpr bool v0 = std::is_same_v<trait::Params, Spices::type_list<int, float>>;
55 constexpr bool v1 = std::is_same_v<trait::ReturnType, bool>;
56 constexpr bool v2 = std::is_same_v<trait::ParamsWithClass, Spices::type_list<FunctionTraitsTestClass*, int, float>>;
59
60 EXPECT_EQ(v0, true);
61 EXPECT_EQ(v1, true);
62 EXPECT_EQ(v2, true);
63 EXPECT_EQ(v3, true);
64 EXPECT_EQ(v4, true);
65
66 EXPECT_EQ(trait::is_const, false);
67 EXPECT_EQ(trait::is_member, true);
68 }
69
70 {
72
73 constexpr bool v0 = std::is_same_v<trait::Params, Spices::type_list<int, float, void*>>;
74 constexpr bool v1 = std::is_same_v<trait::ReturnType, int>;
75 constexpr bool v2 = std::is_same_v<trait::Class, FunctionTraitsTestClass>;
76 constexpr bool v3 = std::is_same_v<trait::ParamsWithClass, Spices::type_list<FunctionTraitsTestClass*, int, float, void*>>;
77 constexpr bool v4 = std::is_same_v<trait::Pointer, int(FunctionTraitsTestClass::*)(int, float, void*)>;
78 constexpr bool v5 = std::is_same_v<trait::Type, int(FunctionTraitsTestClass::*)(int, float, void*)>;
79
80 EXPECT_EQ(v0, true);
81 EXPECT_EQ(v1, true);
82 EXPECT_EQ(v2, true);
83 EXPECT_EQ(v3, true);
84 EXPECT_EQ(v4, true);
85 EXPECT_EQ(v5, true);
86
87 EXPECT_EQ(trait::is_const, false);
88 EXPECT_EQ(trait::is_member, true);
89 }
90
91 {
93
94 constexpr bool v0 = std::is_same_v<trait::Params, Spices::type_list<int, float, void*>>;
95 constexpr bool v1 = std::is_same_v<trait::ReturnType, bool>;
96 constexpr bool v2 = std::is_same_v<trait::Class, FunctionTraitsTestClass>;
97 constexpr bool v3 = std::is_same_v<trait::ParamsWithClass, Spices::type_list<FunctionTraitsTestClass*, int, float, void*>>;
98 constexpr bool v4 = std::is_same_v<trait::Pointer, bool(FunctionTraitsTestClass::*)(int, float, void*) const>;
99 constexpr bool v5 = std::is_same_v<trait::Type, bool(FunctionTraitsTestClass::*)(int, float, void*) const>;
100
101 EXPECT_EQ(v0, true);
102 EXPECT_EQ(v1, true);
103 EXPECT_EQ(v2, true);
104 EXPECT_EQ(v3, true);
105 EXPECT_EQ(v4, true);
106 EXPECT_EQ(v5, true);
107
108 EXPECT_EQ(trait::is_const, true);
109 EXPECT_EQ(trait::is_member, true);
110 }
111
112 {
114
115 constexpr bool v0 = std::is_same_v<trait::Params, Spices::type_list<int, float, void*>>;
116 constexpr bool v1 = std::is_same_v<trait::ReturnType, bool>;
117 constexpr bool v2 = std::is_same_v<trait::Class, void>;
118 constexpr bool v3 = std::is_same_v<trait::ParamsWithClass, Spices::type_list<int, float, void*>>;
119 constexpr bool v4 = std::is_same_v<trait::Pointer, bool(*)(int, float, void*)>;
120 constexpr bool v5 = std::is_same_v<trait::Type, bool(*)(int, float, void*)>;
121
122 EXPECT_EQ(v0, true);
123 EXPECT_EQ(v1, true);
124 EXPECT_EQ(v2, true);
125 EXPECT_EQ(v3, true);
126 EXPECT_EQ(v4, true);
127 EXPECT_EQ(v5, true);
128
129 EXPECT_EQ(trait::is_const, false);
130 EXPECT_EQ(trait::is_member, false);
131 }
132
133 {
135
136 constexpr bool v0 = std::is_same_v<trait::Params,
Spices::type_list<int(*)(float,
void*),
float,
void*>>;
137 constexpr bool v1 = std::is_same_v<trait::ReturnType, int>;
138 constexpr bool v2 = std::is_same_v<trait::Class, FunctionTraitsTestClass>;
139 constexpr bool v3 = std::is_same_v<trait::ParamsWithClass,
Spices::type_list<FunctionTraitsTestClass*, int(*)(float,
void*),
float,
void*>>;
140 constexpr bool v4 = std::is_same_v<trait::Pointer, int(FunctionTraitsTestClass::*)(int(*)(float, void*), float, void*)>;
141 constexpr bool v5 = std::is_same_v<trait::Type, int(FunctionTraitsTestClass::*)(int(*)(float, void*), float, void*)>;
142
143 EXPECT_EQ(v0, true);
144 EXPECT_EQ(v1, true);
145 EXPECT_EQ(v2, true);
146 EXPECT_EQ(v3, true);
147 EXPECT_EQ(v4, true);
148 EXPECT_EQ(v5, true);
149
150 EXPECT_EQ(trait::is_const, false);
151 EXPECT_EQ(trait::is_member, true);
152 }
153
154 {
156
157 constexpr bool v0 = std::is_same_v<trait::Params, Spices::type_list<int, float>>;
158 constexpr bool v1 = std::is_same_v<trait::ReturnType, bool>;
159 constexpr bool v2 = std::is_same_v<trait::Class, void>;
160 constexpr bool v3 = std::is_same_v<trait::ParamsWithClass, Spices::type_list<int, float>>;
161 constexpr bool v4 = std::is_same_v<trait::Pointer, bool(*)(int, float)>;
162 constexpr bool v5 = std::is_same_v<trait::Type, bool(*)(int, float)>;
163
164 EXPECT_EQ(v0, true);
165 EXPECT_EQ(v1, true);
166 EXPECT_EQ(v2, true);
167 EXPECT_EQ(v3, true);
168 EXPECT_EQ(v4, true);
169 EXPECT_EQ(v5, true);
170
171 EXPECT_EQ(trait::is_const, false);
172 EXPECT_EQ(trait::is_member, false);
173 }
174
175 {
177
178 constexpr bool v0 = std::is_same_v<trait::Params, Spices::type_list<int, float, void*>>;
179 constexpr bool v1 = std::is_same_v<trait::ReturnType, bool>;
180 constexpr bool v2 = std::is_same_v<trait::Class, void>;
181 constexpr bool v3 = std::is_same_v<trait::ParamsWithClass, Spices::type_list<int, float, void*>>;
182 constexpr bool v4 = std::is_same_v<trait::Pointer, bool(*)(int, float, void*)>;
183 constexpr bool v5 = std::is_same_v<trait::Type, bool(*)(int, float, void*)>;
184
185 EXPECT_EQ(v0, true);
186 EXPECT_EQ(v1, true);
187 EXPECT_EQ(v2, true);
188 EXPECT_EQ(v3, true);
189 EXPECT_EQ(v4, true);
190 EXPECT_EQ(v5, true);
191
192 EXPECT_EQ(trait::is_const, false);
193 EXPECT_EQ(trait::is_member, false);
194 }
195 }
#define SPICESTEST_PROFILE_FUNCTION()
Declare of function_traits.
Container of store Types.