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>
struct FutureStorage
{
std::optional<TValue> value;
Optional<TValue> 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>
struct FutureStorage<TValue&>
{
std::optional<TValue*> value;
void setValue(TValue& value_) noexcept { value = &value_; }
[[nodiscard]] TValue& getValue() const noexcept { return *value.value(); }
};
// template<typename TValue>
// struct FutureStorage<TValue&>
// {
// Optional<TValue*> value;
//
// void setValue(TValue& value_) noexcept { value = &value_; }
// [[nodiscard]] TValue& getValue() const noexcept { return *value.get(); }
// };
template<>
struct FutureStorage<void>