From 865a1b913ccbb3ef9cc23f78491c8e036d3ddbba Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Thu, 8 Aug 2019 18:34:59 +0200 Subject: [PATCH] AK: Add Optional(const U&) This replaces Optional(U&&) which clang-tidy complained may hide the regular copy and move constructors. That's a good point, clang-tidy, and I appreciate you pointing that out! --- AK/Optional.h | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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));