1
0
Эх сурвалжийг харах

meta_range: non-const to const iterator conversion guaranteed

Michele Caini 4 жил өмнө
parent
commit
6e45f0d5b8

+ 14 - 0
test/entt/meta/meta_range.cpp

@@ -39,3 +39,17 @@ TEST_F(MetaRange, EmptyRange) {
     entt::meta_range<entt::meta_data> range{};
     ASSERT_EQ(range.begin(), range.end());
 }
+
+TEST_F(MetaRange, IteratorConversion) {
+    using namespace entt::literals;
+
+    entt::meta_range<entt::meta_type> range{entt::internal::meta_context::local()};
+    typename decltype(range)::iterator it = range.begin();
+    typename decltype(range)::const_iterator cit = it;
+
+    static_assert(std::is_same_v<decltype(*it), entt::meta_type>);
+    static_assert(std::is_same_v<decltype(*cit), entt::meta_type>);
+
+    ASSERT_EQ(*it, entt::resolve<double>());
+    ASSERT_EQ(*it, *cit);
+}