constexpr T value_or()

in src/iceberg/expected.h [1439:1449]


  constexpr T value_or(U&& v) const& noexcept(
      std::is_nothrow_copy_constructible_v<T> &&
      expected_detail::is_nothrow_convertible_v<U, T>) {
    static_assert(std::is_copy_constructible_v<T>, "T must be copy-constructible");
    static_assert(std::is_convertible_v<U, T>, "is_convertible_v<U, T> must be true");
    if (this->m_has_val) {
      return this->m_val;
    } else {
      return static_cast<T>(std::forward<U>(v));
    }
  }