@@ -137,55 +137,61 @@ class MetaContext: public ::testing::Test {
137
137
entt::meta_reset ();
138
138
}
139
139
140
+ [[nodiscard]] const entt::meta_ctx& ctx () const noexcept {
141
+ return context;
142
+ }
143
+
140
144
protected:
141
145
static constexpr int global_marker = 1 ;
142
146
static constexpr int local_marker = 42 ;
143
147
static constexpr int bucket_value = 99 ;
144
148
static constexpr int prop_value = 3 ;
149
+
150
+ private:
145
151
entt::meta_ctx context{};
146
152
};
147
153
148
154
TEST_F (MetaContext, Resolve) {
149
155
using namespace entt ::literals;
150
156
151
157
ASSERT_TRUE (entt::resolve<clazz>());
152
- ASSERT_TRUE (entt::resolve<clazz>(context ));
158
+ ASSERT_TRUE (entt::resolve<clazz>(ctx () ));
153
159
154
160
ASSERT_TRUE (entt::resolve<test::empty>());
155
- ASSERT_TRUE (entt::resolve<test::empty>(context ));
161
+ ASSERT_TRUE (entt::resolve<test::empty>(ctx () ));
156
162
157
163
ASSERT_TRUE (entt::resolve (entt::type_id<clazz>()));
158
- ASSERT_TRUE (entt::resolve (context , entt::type_id<clazz>()));
164
+ ASSERT_TRUE (entt::resolve (ctx () , entt::type_id<clazz>()));
159
165
160
166
ASSERT_FALSE (entt::resolve (entt::type_id<test::empty>()));
161
- ASSERT_TRUE (entt::resolve (context , entt::type_id<test::empty>()));
167
+ ASSERT_TRUE (entt::resolve (ctx () , entt::type_id<test::empty>()));
162
168
163
169
ASSERT_TRUE (entt::resolve (" foo" _hs));
164
- ASSERT_FALSE (entt::resolve (context , " foo" _hs));
170
+ ASSERT_FALSE (entt::resolve (ctx () , " foo" _hs));
165
171
166
172
ASSERT_FALSE (entt::resolve (" bar" _hs));
167
- ASSERT_TRUE (entt::resolve (context , " bar" _hs));
173
+ ASSERT_TRUE (entt::resolve (ctx () , " bar" _hs));
168
174
169
175
ASSERT_FALSE (entt::resolve (" quux" _hs));
170
- ASSERT_TRUE (entt::resolve (context , " quux" _hs));
176
+ ASSERT_TRUE (entt::resolve (ctx () , " quux" _hs));
171
177
172
178
ASSERT_EQ ((std::distance (entt::resolve ().cbegin (), entt::resolve ().cend ())), 4 );
173
- ASSERT_EQ ((std::distance (entt::resolve (context) .cbegin (), entt::resolve (context ).cend ())), 6 );
179
+ ASSERT_EQ ((std::distance (entt::resolve (ctx ()) .cbegin (), entt::resolve (ctx () ).cend ())), 6 );
174
180
}
175
181
176
182
TEST_F (MetaContext, MetaType) {
177
183
using namespace entt ::literals;
178
184
179
185
const auto global = entt::resolve<clazz>();
180
- const auto local = entt::resolve<clazz>(context );
186
+ const auto local = entt::resolve<clazz>(ctx () );
181
187
182
188
ASSERT_TRUE (global);
183
189
ASSERT_TRUE (local);
184
190
185
191
ASSERT_NE (global, local);
186
192
187
193
ASSERT_EQ (global, entt::resolve (" foo" _hs));
188
- ASSERT_EQ (local, entt::resolve (context , " bar" _hs));
194
+ ASSERT_EQ (local, entt::resolve (ctx () , " bar" _hs));
189
195
190
196
ASSERT_EQ (global.id (), " foo" _hs);
191
197
ASSERT_EQ (local.id (), " bar" _hs);
@@ -207,22 +213,22 @@ TEST_F(MetaContext, MetaType) {
207
213
208
214
TEST_F (MetaContext, MetaBase) {
209
215
const auto global = entt::resolve<clazz>();
210
- const auto local = entt::resolve<clazz>(context );
216
+ const auto local = entt::resolve<clazz>(ctx () );
211
217
212
218
ASSERT_EQ ((std::distance (global.base ().cbegin (), global.base ().cend ())), 0 );
213
219
ASSERT_EQ ((std::distance (local.base ().cbegin (), local.base ().cend ())), 1 );
214
220
215
221
ASSERT_EQ (local.base ().cbegin ()->second .info (), entt::type_id<base>());
216
222
217
223
ASSERT_FALSE (entt::resolve (entt::type_id<base>()));
218
- ASSERT_TRUE (entt::resolve (context , entt::type_id<base>()));
224
+ ASSERT_TRUE (entt::resolve (ctx () , entt::type_id<base>()));
219
225
}
220
226
221
227
TEST_F (MetaContext, MetaData) {
222
228
using namespace entt ::literals;
223
229
224
230
const auto global = entt::resolve<clazz>();
225
- const auto local = entt::resolve<clazz>(context );
231
+ const auto local = entt::resolve<clazz>(ctx () );
226
232
227
233
ASSERT_TRUE (global.data (" value" _hs));
228
234
ASSERT_TRUE (local.data (" value" _hs));
@@ -257,7 +263,7 @@ TEST_F(MetaContext, MetaFunc) {
257
263
using namespace entt ::literals;
258
264
259
265
const auto global = entt::resolve<clazz>();
260
- const auto local = entt::resolve<clazz>(context );
266
+ const auto local = entt::resolve<clazz>(ctx () );
261
267
262
268
ASSERT_TRUE (global.func (" func" _hs));
263
269
ASSERT_TRUE (local.func (" func" _hs));
@@ -288,7 +294,7 @@ TEST_F(MetaContext, MetaFunc) {
288
294
289
295
TEST_F (MetaContext, MetaCtor) {
290
296
const auto global = entt::resolve<clazz>();
291
- const auto local = entt::resolve<clazz>(context );
297
+ const auto local = entt::resolve<clazz>(ctx () );
292
298
293
299
auto any = global.construct ();
294
300
auto other = local.construct ();
@@ -320,7 +326,7 @@ TEST_F(MetaContext, MetaConv) {
320
326
argument value{2 };
321
327
322
328
auto global = entt::forward_as_meta (value);
323
- auto local = entt::forward_as_meta (context , value);
329
+ auto local = entt::forward_as_meta (ctx () , value);
324
330
325
331
ASSERT_TRUE (global.allow_cast <int >());
326
332
ASSERT_TRUE (local.allow_cast <int >());
@@ -331,7 +337,7 @@ TEST_F(MetaContext, MetaConv) {
331
337
332
338
TEST_F (MetaContext, MetaDtor) {
333
339
auto global = entt::resolve<clazz>().construct ();
334
- auto local = entt::resolve<clazz>(context ).construct ();
340
+ auto local = entt::resolve<clazz>(ctx () ).construct ();
335
341
336
342
ASSERT_EQ (clazz::bucket, bucket_value);
337
343
@@ -348,13 +354,13 @@ TEST_F(MetaContext, MetaProp) {
348
354
using namespace entt ::literals;
349
355
350
356
const auto global = entt::resolve<clazz>();
351
- const auto local = entt::resolve<clazz>(context );
357
+ const auto local = entt::resolve<clazz>(ctx () );
352
358
353
359
ASSERT_TRUE (global.prop (" prop" _hs));
354
360
ASSERT_TRUE (local.prop (" prop" _hs));
355
361
356
362
ASSERT_EQ (global.prop (" prop" _hs).value ().type (), entt::resolve<int >());
357
- ASSERT_EQ (local.prop (" prop" _hs).value ().type (), entt::resolve<int >(context ));
363
+ ASSERT_EQ (local.prop (" prop" _hs).value ().type (), entt::resolve<int >(ctx () ));
358
364
359
365
ASSERT_EQ (global.prop (" prop" _hs).value ().cast <int >(), prop_value);
360
366
ASSERT_EQ (local.prop (" prop" _hs).value ().cast <int >(), prop_value);
@@ -367,7 +373,7 @@ TEST_F(MetaContext, MetaTemplate) {
367
373
using namespace entt ::literals;
368
374
369
375
const auto global = entt::resolve (" template" _hs);
370
- const auto local = entt::resolve (context , " template" _hs);
376
+ const auto local = entt::resolve (ctx () , " template" _hs);
371
377
372
378
ASSERT_TRUE (global.is_template_specialization ());
373
379
ASSERT_TRUE (local.is_template_specialization ());
@@ -376,8 +382,8 @@ TEST_F(MetaContext, MetaTemplate) {
376
382
ASSERT_EQ (local.template_arity (), 2u );
377
383
378
384
ASSERT_EQ (global.template_arg (0u ), entt::resolve<int >());
379
- ASSERT_EQ (local.template_arg (0u ), entt::resolve<int >(context ));
380
- ASSERT_EQ (local.template_arg (1u ), entt::resolve<char >(context ));
385
+ ASSERT_EQ (local.template_arg (0u ), entt::resolve<int >(ctx () ));
386
+ ASSERT_EQ (local.template_arg (1u ), entt::resolve<char >(ctx () ));
381
387
382
388
ASSERT_EQ (global.template_arg (0u ).data (" marker" _hs).get ({}).cast <int >(), global_marker);
383
389
ASSERT_EQ (local.template_arg (0u ).data (" marker" _hs).get ({}).cast <int >(), local_marker);
@@ -389,7 +395,7 @@ TEST_F(MetaContext, MetaPointer) {
389
395
int value = 42 ;
390
396
391
397
const entt::meta_any global{&value};
392
- const entt::meta_any local{context , &value};
398
+ const entt::meta_any local{ctx () , &value};
393
399
394
400
ASSERT_TRUE (global.type ().is_pointer ());
395
401
ASSERT_TRUE (local.type ().is_pointer ());
@@ -407,7 +413,7 @@ TEST_F(MetaContext, MetaAssociativeContainer) {
407
413
std::unordered_map<int , int > map{{{0 , 0 }}};
408
414
409
415
auto global = entt::forward_as_meta (map).as_associative_container ();
410
- auto local = entt::forward_as_meta (context , map).as_associative_container ();
416
+ auto local = entt::forward_as_meta (ctx () , map).as_associative_container ();
411
417
412
418
ASSERT_TRUE (global);
413
419
ASSERT_TRUE (local);
@@ -434,7 +440,7 @@ TEST_F(MetaContext, MetaSequenceContainer) {
434
440
std::vector<int > vec{0 };
435
441
436
442
auto global = entt::forward_as_meta (vec).as_sequence_container ();
437
- auto local = entt::forward_as_meta (context , vec).as_sequence_container ();
443
+ auto local = entt::forward_as_meta (ctx () , vec).as_sequence_container ();
438
444
439
445
ASSERT_TRUE (global);
440
446
ASSERT_TRUE (local);
@@ -453,9 +459,9 @@ TEST_F(MetaContext, MetaAny) {
453
459
using namespace entt ::literals;
454
460
455
461
const entt::meta_any global{42 };
456
- const entt::meta_any ctx_value{context , 42 };
457
- const entt::meta_any in_place{context , std::in_place_type<int >, 42 };
458
- entt::meta_any two_step_local{entt::meta_ctx_arg, context };
462
+ const entt::meta_any ctx_value{ctx () , 42 };
463
+ const entt::meta_any in_place{ctx () , std::in_place_type<int >, 42 };
464
+ entt::meta_any two_step_local{entt::meta_ctx_arg, ctx () };
459
465
460
466
ASSERT_TRUE (global);
461
467
ASSERT_TRUE (ctx_value);
@@ -478,8 +484,8 @@ TEST_F(MetaContext, MetaHandle) {
478
484
int value = 42 ;
479
485
480
486
entt::meta_handle global{value};
481
- entt::meta_handle ctx_value{context , value};
482
- entt::meta_handle two_step_local{entt::meta_ctx_arg, context };
487
+ entt::meta_handle ctx_value{ctx () , value};
488
+ entt::meta_handle two_step_local{entt::meta_ctx_arg, ctx () };
483
489
484
490
ASSERT_TRUE (global);
485
491
ASSERT_TRUE (ctx_value);
@@ -498,7 +504,7 @@ TEST_F(MetaContext, ForwardAsMeta) {
498
504
using namespace entt ::literals;
499
505
500
506
const auto global = entt::forward_as_meta (42 );
501
- const auto local = entt::forward_as_meta (context , 42 );
507
+ const auto local = entt::forward_as_meta (ctx () , 42 );
502
508
503
509
ASSERT_TRUE (global);
504
510
ASSERT_TRUE (local);
0 commit comments