Use our optional type for storing results of the future.

This commit is contained in:
Patrick 2023-11-16 23:38:53 +01:00
parent 5eb7864928
commit 5aecd20c56

View File

@ -34,21 +34,21 @@ namespace impl
template<typename TValue> template<typename TValue>
struct FutureStorage struct FutureStorage
{ {
std::optional<TValue> value; Optional<TValue> value;
void setValue(TValue value_) noexcept { value = std::move(value_); } void setValue(TValue value_) noexcept { value = std::move(value_); }
[[nodiscard]] TValue& getValue() noexcept { return value.value(); } [[nodiscard]] TValue& getValue() noexcept { return value.get(); }
}; };
template<typename TValue> // template<typename TValue>
struct FutureStorage<TValue&> // struct FutureStorage<TValue&>
{ // {
std::optional<TValue*> value; // Optional<TValue*> value;
//
void setValue(TValue& value_) noexcept { value = &value_; } // void setValue(TValue& value_) noexcept { value = &value_; }
[[nodiscard]] TValue& getValue() const noexcept { return *value.value(); } // [[nodiscard]] TValue& getValue() const noexcept { return *value.get(); }
}; // };
template<> template<>
struct FutureStorage<void> struct FutureStorage<void>