Andreas Kling
|
60c25228ee
|
AK: Fix -Wconsumed warnings in Optional move-ctor and move-assign
Our protocol says we have to call has_value() before release_value().
The code was already safe, but the compiler had no way of knowing that.
|
2019-08-07 07:17:52 +02:00 |
|
Andreas Kling
|
151e6a1818
|
AK: Fix leak in Optional(Optional&&)
We were *copying* the other Optional's value and then marking it as not
having a value. This prevented us from ever destroying the original.
|
2019-08-05 22:27:47 +02:00 |
|
Andreas Kling
|
9553ecfe01
|
AK: Optional::operator=(Optional&&) should clear movee's has_value bit
We were forgetting to clear m_has_value in the Optional being moved
from when using operator=(Optional&&).
|
2019-08-05 21:47:36 +02:00 |
|
Robin Burchell
|
28362fcc57
|
Optional: Add consumable checks
These will, when building with clang, prevent using Optional::value
without first checking Optional::has_value() - at compile time.
|
2019-07-31 09:06:39 +02:00 |
|
Andreas Kling
|
1d0b464618
|
AK: Make HashMap::get(Key) return an Optional<Value>.
This allows HashMap::get() to be used for value types that cannot be default
constructed (e.g NonnullOwnPtr.)
|
2019-07-24 10:25:43 +02:00 |
|
Andreas Kling
|
adb7b1bc4c
|
AK: Add Optional::value_or(T).
This is like value() but with a fallback in case there's no value set.
|
2019-07-24 07:26:02 +02:00 |
|
Andreas Kling
|
7b2a4c02e7
|
AK: Add a simple Optional<T> template.
This can be used to store any type, with a flag that says if any value
is present or not.
|
2019-07-08 11:29:38 +02:00 |
|