concept | ranges::optional_should_convert = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( requires(int)(void()) && !( constructible_from<T, optional<U> & > || constructible_from<T, optional<U> && > || constructible_from<T, optional<U> const & > || constructible_from<T, optional<U> const &&> || convertible_to<optional<U> &, T> || convertible_to<optional<U> &&, T> || convertible_to<optional<U> const &, T> || convertible_to<optional<U> const &&, T> ) )( requires(int)(void()) && !( constructible_from<T, optional<U> & > || constructible_from<T, optional<U> && > || constructible_from<T, optional<U> const & > || constructible_from<T, optional<U> const &&> || convertible_to<optional<U> &, T> || convertible_to<optional<U> &&, T> || convertible_to<optional<U> const &, T> || convertible_to<optional<U> const &&, T> ) ) |
concept | ranges::optional_should_convert_assign = CPP_PP_CAT( CPP_PP_DEF_IMPL_IS_PAREN_, 0 )( optional_should_convert<U )( optional_should_convert<U, T> && !(assignable_from<T &, optional<U> &> || assignable_from<T &, optional<U> &&> || assignable_from<T &, optional<U> const &> || assignable_from<T &, optional<U> const &&>) ) |