throw_bad_result_access<EC>

Policy class defining that bad_result_access_with<EC> should be thrown on incorrect wide value observation. The primary purpose of this policy is to enable standing in for P0323 std::expected<T, E> which throws a bad_expected_access<E> on incorrect wide value observation. This is why it is only ever EC which is thrown with bad_result_access_with<EC> on value observation only, and only when there is an error available.

If used in basic_outcome, and the outcome is exceptioned and so no error is available, incorrect wide value observation performs instead:

OUTCOME_THROW_EXCEPTION(bad_result_access("no value"));

Incorrect wide error observation performs:

OUTCOME_THROW_EXCEPTION(bad_result_access("no error"));

Incorrect wide exception observation performs:

OUTCOME_THROW_EXCEPTION(bad_outcome_access("no exception"));

Inherits publicly from base, and its narrow value, error and exception observer policies are inherited from there.

Requires: Nothing.

Namespace: OUTCOME_V2_NAMESPACE::policy

Header: <outcome/policy/throw_bad_result_access.hpp>