diff --git a/src/entt/entity/organizer.hpp b/src/entt/entity/organizer.hpp index ebda20b9a..67438e6fd 100644 --- a/src/entt/entity/organizer.hpp +++ b/src/entt/entity/organizer.hpp @@ -126,7 +126,7 @@ class basic_organizer final { if constexpr(std::is_same_v) { return reg; } else if constexpr(internal::is_view_v) { - return as_view{reg}; + return static_cast(as_view{reg}); } else { return reg.ctx().template emplace>(); } diff --git a/test/entt/entity/organizer.cpp b/test/entt/entity/organizer.cpp index 30ddb175a..82db3f94f 100644 --- a/test/entt/entity/organizer.cpp +++ b/test/entt/entity/organizer.cpp @@ -1,5 +1,7 @@ #include +#include #include +#include #include #include @@ -363,6 +365,10 @@ TEST(Organizer, Prepare) { ASSERT_FALSE(registry.ctx().contains()); ASSERT_FALSE(registry.ctx().contains()); + ASSERT_EQ(std::as_const(registry).storage(), nullptr); + ASSERT_EQ(std::as_const(registry).storage(), nullptr); + ASSERT_EQ(std::as_const(registry).storage(), nullptr); + for(auto &&vertex: graph) { vertex.prepare(registry); } @@ -370,6 +376,10 @@ TEST(Organizer, Prepare) { ASSERT_FALSE(registry.ctx().contains()); ASSERT_FALSE(registry.ctx().contains()); ASSERT_TRUE(registry.ctx().contains()); + + ASSERT_NE(std::as_const(registry).storage(), nullptr); + ASSERT_NE(std::as_const(registry).storage(), nullptr); + ASSERT_EQ(std::as_const(registry).storage(), nullptr); } TEST(Organizer, Dependencies) {