@@ -938,6 +938,15 @@ namespace ranges {
938938 template<input_range R, class T, indirectly-binary-left-foldable<T, iterator_t<R>> F>
939939 constexpr auto fold_left(R&& r, T init, F f); // since C++23
940940
941+ template<input_iterator I, sentinel_for<I> S,
942+ indirectly-binary-left-foldable<T, I> F>
943+ requires constructible_from<iter_value_t<I>, iter_reference_t<I>>
944+ constexpr see below fold_left_first(I first, S last, F f); // since C++23
945+
946+ template<input_range R, indirectly-binary-left-foldable<T, iterator_t<R>> F>
947+ requires constructible_from<range_value_t<R>, range_reference_t<R>>
948+ constexpr see below fold_left_first(R&& r, F f); // since C++23
949+
941950 template<class I, class T>
942951 using fold_left_with_iter_result = in_value_result<I, T>; // since C++23
943952
@@ -949,7 +958,7 @@ namespace ranges {
949958 constexpr see below fold_left_with_iter(R&& r, T init, F f); // since C++23
950959
951960 template<class I, class T>
952- using fold_left_first_with_iter_result = in_value_result<I, optional<T>>; // since C++23
961+ using fold_left_first_with_iter_result = in_value_result<I, T>; // since C++23
953962
954963 template<input_iterator I, sentinel_for<I> S,
955964 indirectly-binary-left-foldable<T, I> F>
0 commit comments