diff --git a/AK/Optional.h b/AK/Optional.h index c9241e602f..589cc9b646 100644 --- a/AK/Optional.h +++ b/AK/Optional.h @@ -10,15 +10,22 @@ public: Optional() {} RETURN_TYPESTATE(unknown) - Optional(T&& value) + Optional(const T& value) : m_has_value(true) { - new (&m_storage) T(move(value)); + new (&m_storage) T(value); } template RETURN_TYPESTATE(unknown) - Optional(U&& value) + Optional(const U& value) + : m_has_value(true) + { + new (&m_storage) T(value); + } + + RETURN_TYPESTATE(unknown) + Optional(T&& value) : m_has_value(true) { new (&m_storage) T(move(value));