This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of Tentatively Ready status.
Section: 22.8.7.6 [expected.void.obs] Status: Tentatively Ready Submitter: Jiang An Opened: 2023-05-26 Last modified: 2023-06-01
Priority: Not Prioritized
View all issues with Tentatively Ready status.
Discussion:
LWG 3843 added Mandates: to std::expected::value, but the similar handling is missing for expected<cv void, E>.
[2023-06-01; Reflector poll]
Set status to Tentatively Ready after seven votes in favour during reflector poll.
Proposed resolution:
This wording is relative to N4950.
Modify 22.8.7.6 [expected.void.obs] as indicated:
constexpr void value() const &;-?- Mandates: is_copy_constructible_v<E> is true.
-3- Throws: bad_expected_access(error()) if has_value() is false.constexpr void value() &&;-?- Mandates: is_copy_constructible_v<E> is true and is_move_constructible_v<E> is true.
-4- Throws: bad_expected_access(std::move(error())) if has_value() is false.