From ceb4259ae3e44c5c806dea236ab633b63a90d3c3 Mon Sep 17 00:00:00 2001 From: Michele Caini Date: Fri, 10 May 2024 10:16:05 +0200 Subject: [PATCH] storage: make deletion policy constexpr available as data member --- src/entt/entity/storage.hpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/entt/entity/storage.hpp b/src/entt/entity/storage.hpp index fcb2f5ba9..720af4ece 100644 --- a/src/entt/entity/storage.hpp +++ b/src/entt/entity/storage.hpp @@ -421,6 +421,8 @@ public: using reverse_iterable = iterable_adaptor>; /*! @brief Constant extended reverse iterable storage proxy. */ using const_reverse_iterable = iterable_adaptor>; + /*! @brief Storage deletion policy. */ + static constexpr deletion_policy storage_policy{traits_type::in_place_delete}; /*! @brief Default constructor. */ basic_storage() @@ -431,7 +433,7 @@ public: * @param allocator The allocator to use. */ explicit basic_storage(const allocator_type &allocator) - : base_type{type_id(), deletion_policy{traits_type::in_place_delete}, allocator}, + : base_type{type_id(), storage_policy, allocator}, payload{allocator} {} /** @@ -797,6 +799,8 @@ public: using reverse_iterable = iterable_adaptor>; /*! @brief Constant extended reverse iterable storage proxy. */ using const_reverse_iterable = iterable_adaptor>; + /*! @brief Storage deletion policy. */ + static constexpr deletion_policy storage_policy{traits_type::in_place_delete}; /*! @brief Default constructor. */ basic_storage() @@ -807,7 +811,7 @@ public: * @param allocator The allocator to use. */ explicit basic_storage(const allocator_type &allocator) - : base_type{type_id(), deletion_policy{traits_type::in_place_delete}, allocator} {} + : base_type{type_id(), storage_policy, allocator} {} /** * @brief Move constructor. @@ -999,6 +1003,8 @@ public: using reverse_iterable = iterable_adaptor>; /*! @brief Constant extended reverse iterable storage proxy. */ using const_reverse_iterable = iterable_adaptor>; + /*! @brief Storage deletion policy. */ + static constexpr deletion_policy storage_policy = deletion_policy::swap_only; /*! @brief Default constructor. */ basic_storage() @@ -1010,7 +1016,7 @@ public: * @param allocator The allocator to use. */ explicit basic_storage(const allocator_type &allocator) - : base_type{type_id(), deletion_policy::swap_only, allocator}, + : base_type{type_id(), storage_policy, allocator}, placeholder{} {} /**