|
|
@@ -33,15 +33,6 @@ void listener(counter &counter, Registry &, typename Registry::entity_type) {
|
|
|
|
|
|
struct empty_each_tag final {};
|
|
|
|
|
|
-template<>
|
|
|
-struct entt::basic_storage<empty_each_tag, entt::entity, std::allocator<empty_each_tag>>: entt::basic_storage<void, entt::entity, std::allocator<void>> {
|
|
|
- basic_storage(const std::allocator<empty_each_tag> &) {}
|
|
|
-
|
|
|
- [[nodiscard]] iterable each() noexcept {
|
|
|
- return {internal::extended_storage_iterator{base_type::end()}, internal::extended_storage_iterator{base_type::end()}};
|
|
|
- }
|
|
|
-};
|
|
|
-
|
|
|
TEST(SighMixin, GenericType) {
|
|
|
entt::entity entity[2u]{entt::entity{3}, entt::entity{42}};
|
|
|
entt::sigh_mixin<entt::storage<int>> pool;
|
|
|
@@ -434,35 +425,6 @@ TEST(SighMixin, Swap) {
|
|
|
ASSERT_EQ(on_destroy.value, 3);
|
|
|
}
|
|
|
|
|
|
-TEST(SighMixin, EmptyEachStorage) {
|
|
|
- entt::sigh_mixin<entt::storage<empty_each_tag>> pool;
|
|
|
- entt::registry registry;
|
|
|
-
|
|
|
- counter on_destroy{};
|
|
|
-
|
|
|
- pool.bind(entt::forward_as_any(registry));
|
|
|
- pool.on_destroy().connect<&listener<entt::registry>>(on_destroy);
|
|
|
-
|
|
|
- ASSERT_TRUE(pool.empty());
|
|
|
- ASSERT_EQ(on_destroy.value, 0);
|
|
|
-
|
|
|
- pool.push(entt::entity{42});
|
|
|
-
|
|
|
- ASSERT_FALSE(pool.empty());
|
|
|
- ASSERT_EQ(on_destroy.value, 0);
|
|
|
-
|
|
|
- ASSERT_NE(pool.begin(), pool.end());
|
|
|
- ASSERT_EQ(pool.each().begin(), pool.each().end());
|
|
|
- ASSERT_EQ(on_destroy.value, 0);
|
|
|
-
|
|
|
- pool.clear();
|
|
|
-
|
|
|
- ASSERT_EQ(pool.begin(), pool.end());
|
|
|
- ASSERT_EQ(pool.each().begin(), pool.each().end());
|
|
|
- // no signal at all because of the (fake) empty iterable
|
|
|
- ASSERT_EQ(on_destroy.value, 0);
|
|
|
-}
|
|
|
-
|
|
|
TEST(SighMixin, StorageEntity) {
|
|
|
using traits_type = entt::entt_traits<entt::entity>;
|
|
|
|