From 59fa4055a60c1a4cf5f8b3b472226c23a24416df Mon Sep 17 00:00:00 2001 From: Bananymous Date: Tue, 17 Jan 2023 12:02:59 +0200 Subject: [PATCH] BAN: Add Queue::Emplace() --- BAN/include/BAN/Queue.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/BAN/include/BAN/Queue.h b/BAN/include/BAN/Queue.h index 586bfdf34..480552119 100644 --- a/BAN/include/BAN/Queue.h +++ b/BAN/include/BAN/Queue.h @@ -26,6 +26,8 @@ namespace BAN [[nodiscard]] ErrorOr Push(T&&); [[nodiscard]] ErrorOr Push(const T&); + template + [[nodiscard]] ErrorOr Emplace(Args...); void Pop(); void Clear(); @@ -116,6 +118,16 @@ namespace BAN return Push(Move(T(value))); } + template + template + ErrorOr Queue::Emplace(Args... args) + { + TRY(EnsureCapacity(m_size + 1)); + new (AddressOf(m_size)) T(Forward(args)...); + m_size++; + return {}; + } + template void Queue::Pop() {