This commit is contained in:
Vladislav Khorev committed 2026-11-09 16:21:41 +06:00
commit 8beaa76720
18 files changed
+98 -67

No files matched your search

@@ -1,14 +1,15 @@
--- a/include/sol/optional_implementation.hpp
+++ b/include/sol/optional_implementation.hpp
@@ -2189,7 +2189,10 @@
template <class... Args>
T& emplace(Args&&... args) noexcept {
@@ -2191,8 +2191,10 @@ namespace sol {
static_assert(std::is_constructible<T, Args&&...>::value, "T must be constructible with Args");
*this = nullopt;
- this->construct(std::forward<Args>(args)...);
- return value();
+ // Reference specialization stores a pointer; set it directly.
+ // construct() only exists in the non-reference specialization.
+ m_value = std::addressof(std::forward<Args>(args)...);
+ return *m_value;
}
/// Swaps this optional with the other.