diff --git a/utils/managed_vector.hh b/utils/managed_vector.hh index 07ba8bc4c5..834e88b8cd 100644 --- a/utils/managed_vector.hh +++ b/utils/managed_vector.hh @@ -211,10 +211,11 @@ public: emplace_back(std::move(value)); } template - void emplace_back(Args&&... args) { + T& emplace_back(Args&&... args) { maybe_grow(_size + 1); - new (_data + _size) T(std::forward(args)...); + T* elem = new (_data + _size) T(std::forward(args)...); _size++; + return *elem; } void pop_back() { _data[_size - 1].~T();