registry_no_eto.cpp 855 B

12345678910111213141516171819202122232425
  1. #include <gtest/gtest.h>
  2. #include <entt/entity/registry.hpp>
  3. struct empty_type {};
  4. bool operator==(const empty_type &lhs, const empty_type &rhs) {
  5. return &lhs == &rhs;
  6. }
  7. TEST(Registry, NoEto) {
  8. entt::registry registry;
  9. const auto entity = registry.create();
  10. registry.emplace<empty_type>(entity);
  11. registry.emplace<int>(entity, 42);
  12. ASSERT_NE(registry.view<empty_type>().raw(), nullptr);
  13. ASSERT_NE(registry.try_get<empty_type>(entity), nullptr);
  14. ASSERT_EQ(registry.view<empty_type>().get(entity), std::as_const(registry).view<const empty_type>().get(entity));
  15. auto view = registry.view<empty_type, int>();
  16. auto cview = std::as_const(registry).view<const empty_type, const int>();
  17. ASSERT_EQ((std::get<0>(view.get<empty_type, int>(entity))), (std::get<0>(cview.get<const empty_type, const int>(entity))));
  18. }