Browse Source

storage: make get_allocator work with void type

Michele Caini 2 years ago
parent
commit
4c3a35bc95
1 changed files with 6 additions and 1 deletions
  1. 6 1
      src/entt/entity/storage.hpp

+ 6 - 1
src/entt/entity/storage.hpp

@@ -841,7 +841,12 @@ public:
      * @return The associated allocator.
      */
     [[nodiscard]] constexpr allocator_type get_allocator() const noexcept {
-        return allocator_type{base_type::get_allocator()};
+        // std::allocator<void> has no cross constructors (waiting for C++20)
+        if constexpr(std::is_same_v<value_type, void> && !std::is_constructible_v<allocator_type, typename base_type::allocator_type>) {
+            return allocator_type{};
+        } else {
+            return allocator_type{base_type::get_allocator()};
+        }
     }
 
     /**