@@ -137,55 +137,61 @@ class MetaContext: public ::testing::Test {
137137 entt::meta_reset ();
138138 }
139139
140+ [[nodiscard]] const entt::meta_ctx& ctx () const noexcept {
141+ return context;
142+ }
143+
140144protected:
141145 static constexpr int global_marker = 1 ;
142146 static constexpr int local_marker = 42 ;
143147 static constexpr int bucket_value = 99 ;
144148 static constexpr int prop_value = 3 ;
149+
150+ private:
145151 entt::meta_ctx context{};
146152};
147153
148154TEST_F (MetaContext, Resolve) {
149155 using namespace entt ::literals;
150156
151157 ASSERT_TRUE (entt::resolve<clazz>());
152- ASSERT_TRUE (entt::resolve<clazz>(context ));
158+ ASSERT_TRUE (entt::resolve<clazz>(ctx () ));
153159
154160 ASSERT_TRUE (entt::resolve<test::empty>());
155- ASSERT_TRUE (entt::resolve<test::empty>(context ));
161+ ASSERT_TRUE (entt::resolve<test::empty>(ctx () ));
156162
157163 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>()));
159165
160166 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>()));
162168
163169 ASSERT_TRUE (entt::resolve (" foo" _hs));
164- ASSERT_FALSE (entt::resolve (context , " foo" _hs));
170+ ASSERT_FALSE (entt::resolve (ctx () , " foo" _hs));
165171
166172 ASSERT_FALSE (entt::resolve (" bar" _hs));
167- ASSERT_TRUE (entt::resolve (context , " bar" _hs));
173+ ASSERT_TRUE (entt::resolve (ctx () , " bar" _hs));
168174
169175 ASSERT_FALSE (entt::resolve (" quux" _hs));
170- ASSERT_TRUE (entt::resolve (context , " quux" _hs));
176+ ASSERT_TRUE (entt::resolve (ctx () , " quux" _hs));
171177
172178 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 );
174180}
175181
176182TEST_F (MetaContext, MetaType) {
177183 using namespace entt ::literals;
178184
179185 const auto global = entt::resolve<clazz>();
180- const auto local = entt::resolve<clazz>(context );
186+ const auto local = entt::resolve<clazz>(ctx () );
181187
182188 ASSERT_TRUE (global);
183189 ASSERT_TRUE (local);
184190
185191 ASSERT_NE (global, local);
186192
187193 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));
189195
190196 ASSERT_EQ (global.id (), " foo" _hs);
191197 ASSERT_EQ (local.id (), " bar" _hs);
@@ -207,22 +213,22 @@ TEST_F(MetaContext, MetaType) {
207213
208214TEST_F (MetaContext, MetaBase) {
209215 const auto global = entt::resolve<clazz>();
210- const auto local = entt::resolve<clazz>(context );
216+ const auto local = entt::resolve<clazz>(ctx () );
211217
212218 ASSERT_EQ ((std::distance (global.base ().cbegin (), global.base ().cend ())), 0 );
213219 ASSERT_EQ ((std::distance (local.base ().cbegin (), local.base ().cend ())), 1 );
214220
215221 ASSERT_EQ (local.base ().cbegin ()->second .info (), entt::type_id<base>());
216222
217223 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>()));
219225}
220226
221227TEST_F (MetaContext, MetaData) {
222228 using namespace entt ::literals;
223229
224230 const auto global = entt::resolve<clazz>();
225- const auto local = entt::resolve<clazz>(context );
231+ const auto local = entt::resolve<clazz>(ctx () );
226232
227233 ASSERT_TRUE (global.data (" value" _hs));
228234 ASSERT_TRUE (local.data (" value" _hs));
@@ -257,7 +263,7 @@ TEST_F(MetaContext, MetaFunc) {
257263 using namespace entt ::literals;
258264
259265 const auto global = entt::resolve<clazz>();
260- const auto local = entt::resolve<clazz>(context );
266+ const auto local = entt::resolve<clazz>(ctx () );
261267
262268 ASSERT_TRUE (global.func (" func" _hs));
263269 ASSERT_TRUE (local.func (" func" _hs));
@@ -288,7 +294,7 @@ TEST_F(MetaContext, MetaFunc) {
288294
289295TEST_F (MetaContext, MetaCtor) {
290296 const auto global = entt::resolve<clazz>();
291- const auto local = entt::resolve<clazz>(context );
297+ const auto local = entt::resolve<clazz>(ctx () );
292298
293299 auto any = global.construct ();
294300 auto other = local.construct ();
@@ -320,7 +326,7 @@ TEST_F(MetaContext, MetaConv) {
320326 argument value{2 };
321327
322328 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);
324330
325331 ASSERT_TRUE (global.allow_cast <int >());
326332 ASSERT_TRUE (local.allow_cast <int >());
@@ -331,7 +337,7 @@ TEST_F(MetaContext, MetaConv) {
331337
332338TEST_F (MetaContext, MetaDtor) {
333339 auto global = entt::resolve<clazz>().construct ();
334- auto local = entt::resolve<clazz>(context ).construct ();
340+ auto local = entt::resolve<clazz>(ctx () ).construct ();
335341
336342 ASSERT_EQ (clazz::bucket, bucket_value);
337343
@@ -348,13 +354,13 @@ TEST_F(MetaContext, MetaProp) {
348354 using namespace entt ::literals;
349355
350356 const auto global = entt::resolve<clazz>();
351- const auto local = entt::resolve<clazz>(context );
357+ const auto local = entt::resolve<clazz>(ctx () );
352358
353359 ASSERT_TRUE (global.prop (" prop" _hs));
354360 ASSERT_TRUE (local.prop (" prop" _hs));
355361
356362 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 () ));
358364
359365 ASSERT_EQ (global.prop (" prop" _hs).value ().cast <int >(), prop_value);
360366 ASSERT_EQ (local.prop (" prop" _hs).value ().cast <int >(), prop_value);
@@ -367,7 +373,7 @@ TEST_F(MetaContext, MetaTemplate) {
367373 using namespace entt ::literals;
368374
369375 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);
371377
372378 ASSERT_TRUE (global.is_template_specialization ());
373379 ASSERT_TRUE (local.is_template_specialization ());
@@ -376,8 +382,8 @@ TEST_F(MetaContext, MetaTemplate) {
376382 ASSERT_EQ (local.template_arity (), 2u );
377383
378384 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 () ));
381387
382388 ASSERT_EQ (global.template_arg (0u ).data (" marker" _hs).get ({}).cast <int >(), global_marker);
383389 ASSERT_EQ (local.template_arg (0u ).data (" marker" _hs).get ({}).cast <int >(), local_marker);
@@ -389,7 +395,7 @@ TEST_F(MetaContext, MetaPointer) {
389395 int value = 42 ;
390396
391397 const entt::meta_any global{&value};
392- const entt::meta_any local{context , &value};
398+ const entt::meta_any local{ctx () , &value};
393399
394400 ASSERT_TRUE (global.type ().is_pointer ());
395401 ASSERT_TRUE (local.type ().is_pointer ());
@@ -407,7 +413,7 @@ TEST_F(MetaContext, MetaAssociativeContainer) {
407413 std::unordered_map<int , int > map{{{0 , 0 }}};
408414
409415 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 ();
411417
412418 ASSERT_TRUE (global);
413419 ASSERT_TRUE (local);
@@ -434,7 +440,7 @@ TEST_F(MetaContext, MetaSequenceContainer) {
434440 std::vector<int > vec{0 };
435441
436442 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 ();
438444
439445 ASSERT_TRUE (global);
440446 ASSERT_TRUE (local);
@@ -453,9 +459,9 @@ TEST_F(MetaContext, MetaAny) {
453459 using namespace entt ::literals;
454460
455461 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 () };
459465
460466 ASSERT_TRUE (global);
461467 ASSERT_TRUE (ctx_value);
@@ -478,8 +484,8 @@ TEST_F(MetaContext, MetaHandle) {
478484 int value = 42 ;
479485
480486 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 () };
483489
484490 ASSERT_TRUE (global);
485491 ASSERT_TRUE (ctx_value);
@@ -498,7 +504,7 @@ TEST_F(MetaContext, ForwardAsMeta) {
498504 using namespace entt ::literals;
499505
500506 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 );
502508
503509 ASSERT_TRUE (global);
504510 ASSERT_TRUE (local);
0 commit comments