meta_range: non-const to const iterator conversion guaranteed

This commit is contained in:
Michele Caini
2021-10-10 10:46:34 +02:00
parent ff41faa3fe
commit 6e45f0d5b8

View File

@@ -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);
}