diff --git a/src/entt/core/memory.hpp b/src/entt/core/memory.hpp index 9e45a8e76..9bb265147 100644 --- a/src/entt/core/memory.hpp +++ b/src/entt/core/memory.hpp @@ -146,21 +146,21 @@ template auto allocate_unique(Allocator &allocator, Args &&...args) { static_assert(!std::is_array_v, "Array types are not supported"); - using alloc = typename std::allocator_traits::template rebind_alloc; - using alloc_traits = typename std::allocator_traits; + using alloc_traits = typename std::allocator_traits::template rebind_traits; + using allocator_type = typename alloc_traits::allocator_type; - alloc type_allocator{allocator}; - auto ptr = alloc_traits::allocate(type_allocator, 1u); + allocator_type alloc{allocator}; + auto ptr = alloc_traits::allocate(alloc, 1u); ENTT_TRY { - alloc_traits::construct(type_allocator, to_address(ptr), std::forward(args)...); + alloc_traits::construct(alloc, to_address(ptr), std::forward(args)...); } ENTT_CATCH { - alloc_traits::deallocate(type_allocator, ptr, 1u); + alloc_traits::deallocate(alloc, ptr, 1u); ENTT_THROW; } - return std::unique_ptr>{ptr, type_allocator}; + return std::unique_ptr>{ptr, alloc}; } /**