From c2b17efefc4559aab2974d0b8fd0cbd3246789ad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=9CPaulo?= Date: Sat, 25 May 2024 01:52:59 -0300 Subject: [PATCH] fix emplace --- include/sol/optional_implementation.hpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/include/sol/optional_implementation.hpp b/include/sol/optional_implementation.hpp index 26f41d0c..e22226d6 100644 --- a/include/sol/optional_implementation.hpp +++ b/include/sol/optional_implementation.hpp @@ -2191,7 +2191,8 @@ namespace sol { static_assert(std::is_constructible::value, "T must be constructible with Args"); *this = nullopt; - this->construct(std::forward(args)...); + new (static_cast(this)) optional(std::in_place, std::forward(args)...); + return **this; } /// Swaps this optional with the other.