Browse Source

meta: fixed key_only member function for meta associative containers

Michele Caini 5 years ago
parent
commit
ad5bb5198b
2 changed files with 3 additions and 1 deletions
  1. 1 1
      src/entt/meta/meta.hpp
  2. 2 0
      test/entt/meta/meta_container.cpp

+ 1 - 1
src/entt/meta/meta.hpp

@@ -1972,7 +1972,7 @@ struct meta_associative_container::meta_associative_container_proxy {
  */
 template<typename Type>
 meta_associative_container::meta_associative_container(Type &container)
-    : key_only_container{!is_key_only_meta_associative_container_v<Type>},
+    : key_only_container{is_key_only_meta_associative_container_v<Type>},
       key_type_fn{&meta_associative_container_proxy<Type>::key_type},
       mapped_type_fn{&meta_associative_container_proxy<Type>::mapped_type},
       value_type_fn{&meta_associative_container_proxy<Type>::value_type},

+ 2 - 0
test/entt/meta/meta_container.cpp

@@ -145,6 +145,7 @@ TEST(MetaAssociativeContainer, StdMap) {
     auto view = any.as_associative_container();
 
     ASSERT_TRUE(view);
+    ASSERT_FALSE(view.key_only());
     ASSERT_EQ(view.key_type(), entt::resolve<int>());
     ASSERT_EQ(view.mapped_type(), entt::resolve<char>());
     ASSERT_EQ(view.value_type(), (entt::resolve<std::pair<const int, char>>()));
@@ -196,6 +197,7 @@ TEST(MetaAssociativeContainer, StdSet) {
     auto view = any.as_associative_container();
 
     ASSERT_TRUE(view);
+    ASSERT_TRUE(view.key_only());
     ASSERT_EQ(view.key_type(), entt::resolve<int>());
     ASSERT_EQ(view.mapped_type(), entt::meta_type{});
     ASSERT_EQ(view.value_type(), entt::resolve<int>());