40 using traits = std::allocator_traits<Allocator>;
42 static_assert(std::same_as<typename traits::value_type, std::remove_cvref_t<T>>);
44 auto* ptr = traits::allocate(allocator, 1);
46 traits::construct(allocator, ptr, std::forward<T>(value));
47 std::remove_cvref_t<T> result = *ptr;
49 traits::destroy(allocator, ptr);
50 traits::deallocate(allocator, ptr, 1);