diff options
author | Andreas Kling <awesomekling@gmail.com> | 2019-08-08 18:34:59 +0200 |
---|---|---|
committer | Andreas Kling <awesomekling@gmail.com> | 2019-08-08 18:34:59 +0200 |
commit | 865a1b913ccbb3ef9cc23f78491c8e036d3ddbba (patch) | |
tree | dd2927ddbc116ddf7ed40baeb507e12f0b375463 /AK/Optional.h | |
parent | 533b5c0adca1b7d15c807d167dee9ff6accc8a5b (diff) | |
download | serenity-865a1b913ccbb3ef9cc23f78491c8e036d3ddbba.zip |
AK: Add Optional<T>(const U&)
This replaces Optional<T>(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!
Diffstat (limited to 'AK/Optional.h')
-rw-r--r-- | AK/Optional.h | 13 |
1 files 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<typename U> 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)); |