From be34f768e093cb6752ab81fde3ab529861a8a6a8 Mon Sep 17 00:00:00 2001 From: Steven Le Rouzic Date: Sat, 2 Nov 2024 18:32:17 +0100 Subject: Add emplace to option --- asl/option.hpp | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'asl/option.hpp') diff --git a/asl/option.hpp b/asl/option.hpp index bb266ab..ab88992 100644 --- a/asl/option.hpp +++ b/asl/option.hpp @@ -387,6 +387,15 @@ public: { return has_value() ? ASL_MOVE(value()) : static_cast(ASL_FWD(other_value)); } + + template + T& emplace(Args&&... args) & + requires constructible + { + if (m_has_value) { reset(); } + construct(ASL_FWD(args)...); + return value(); + } }; template -- cgit