3. `A` is `void` OR `value_type` is explicitly constructible from `A`.
4. `B` is `void` OR `error_type` is explicitly constructible from `B`.
+- `predicate::enable_make_error_code_compatible_conversion<A, B, C>` is constexpr boolean true if:
+ 1. `predicate::constructors_enabled` is true.
+ 2. `basic_result<A, B, C>` is not this `basic_result` type.
+ 3. Trait {{% api "is_error_code_available<E>" %}} is true for decayed `error_type`.
+ 4. `predicate::enable_compatible_conversion<A, B, C>` is not true.
+ 5. `A` is `void` OR `value_type` is explicitly constructible from `A`.
+ 6. `error_type` is explicitly constructible from `make_error_code(B)`.
+
+- `predicate::enable_make_exception_ptr_compatible_conversion<A, B, C>` is constexpr boolean true if:
+ 1. `predicate::constructors_enabled` is true.
+ 2. `basic_result<A, B, C>` is not this `basic_result` type.
+ 3. Trait {{% api "is_exception_ptr_available<E>" %}} is true for decayed `error_type`.
+ 4. `predicate::enable_compatible_conversion<A, B, C>` is not true.
+ 5. `A` is `void` OR `value_type` is explicitly constructible from `A`.
+ 6. `error_type` is explicitly constructible from `make_exception_ptr(B)`.
+
- `predicate::enable_inplace_value_constructor<Args...>` is constexpr boolean true if:
1. `predicate::constructors_enabled` is true.
2. `value_type` is `void` OR `value_type` is explicitly constructible from `Args...`.