Created on 2025-09-07.00:00:00 last changed 1 month ago
Proposed resolution:
This wording is relative to N5014.
Modify [optional.ref.monadic] as indicated:
template<class F> constexpr optional or_else(F&& f) const;-7- Constraints: `F` models `invocable`.
-8- Mandates:is_same_v<remove_cvref_t<invoke_result_t<F>>, optional>is `true`. -9- Effects: Equivalent to:if (has_value()) { return *thisval; } else { return std::forward<F>(f)(); }
[ 2025-10-16; Reflector poll ]
Set priority to 4 after reflector poll.
"NAD, no observable difference." "Still simpler to not have to reason about whether it matters, let's do it."
optional<T&>::or_else currently returns *val when it has a value,
which calls the optional(U&&) constructor which in turn calls
convert-ref-init-val which in turn calls `addressof`.
optional<T&>'s
default copy constructor to just copy a pointer.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2025-10-16 16:27:52 | admin | set | messages: + msg15195 |
| 2025-09-15 13:54:44 | admin | set | messages: + msg15051 |
| 2025-09-07 00:00:00 | admin | create | |