What is boost-dev's opinion on this proposed change in semantics?
On the basis that nobody argued against the proposed breaking interface
change, I just sent in a commit which prints the following compile time
error if an attempt is made to wide observe a
result/std_result/boost_result, or outcome/std_outcome/boost_outcome,
where it has an EC or EP which is a UDT:
"Attempt to wide observe value, error or exception for a result/outcome
given an EC or E type which is not void, and for whom
trait::has_error_code_v<EC>, trait::has_exception_ptr_v<EC>, and
trait::has_exception_ptr_v<E> are all false. Please specify a
NoValuePolicy to tell result/outcome what to do, or else use a more
specific convenience type alias such as unchecked