std::ranges::fold_left_with_iter, std::ranges::fold_left_with_iter ...

www.en.cppreference.com/w/cpp/algorithm/ranges/fold_left_with_iter.html
The function-like entities described on this page are algorithm function objects (informally known as niebloids), that is: . Explicit template argument lists cannot be specified when calling any of them. None of them are visible to argument-dependent lookup.; When any of them are found by normal unqualified lookup as the name to the left of the function-call operator, argument-dependent lookup ...

Constrained algorithms (since C++20) - cppreference.com

en.cppreference.com/w/cpp/algorithm/ranges.html     2024-11-27T00:00:00.0000000
C++20 provides constrained versions of most algorithms in the namespace std::ranges.In these algorithms, a range can be specified as either an iterator-sentinel pair or as a single range argument, and projections and pointer-to-member callables are supported. Additionally, the return types of most algorithms have been changed to return all potentially useful information computed during the ...

Algorithms library - cppreference.com

en.cppreference.com/w/cpp/algorithm/     2025-02-14T00:00:00.0000000
Constrained algorithms (since C++20) C++20 provides constrained versions of most algorithms in the namespace std::ranges.In these algorithms, a range can be specified as either an iterator-sentinel pair or as a single range argument, and projections and pointer-to-member callables are supported. Additionally, the return types of most algorithms have been changed to return all potentially ...

Standard library header <algorithm> - cppreference.com

en.cppreference.com/w/cpp/header/algorithm.html     2023-11-27T00:00:00.0000000
ranges::fold_left_first_with_iter (C++23) left-folds a range of elements using the first element as an initial value, and returns a pair (iterator, optional )

std::ranges::fold_left - cppreference.com

www.en.cppreference.com/w/cpp/algorithm/ranges/fold_left.html
The function-like entities described on this page are algorithm function objects (informally known as niebloids), that is: . Explicit template argument lists cannot be specified when calling any of them. None of them are visible to argument-dependent lookup.; When any of them are found by normal unqualified lookup as the name to the left of the function-call operator, argument-dependent lookup ...

std::ranges::fold_left_first_with_iter, std::ranges::fold_left_first ...

www.en.cppreference.com/w/cpp/algorithm/ranges/fold_left_first_with_iter.html
Left-folds the elements of given range, that is, returns the result of evaluation of the chain expression:f(f(f(f(x 1, x 2), x 3), ...), x n), where x 1, x 2, ..., x n are elements of the range.. Informally, ranges::fold_left_first_with_iter behaves like std::accumulate 's overload that accepts a binary predicate, except that the * first is used internally as an initial element.

std::ranges:: move, std::ranges:: move_result - Reference

en.cppreference.com/w/cpp/algorithm/ranges/move     2025-02-11T00:00:00.0000000
The elements in the moved-from range will still contain valid values of the appropriate type, but not necessarily the same values as before the move.. The function-like entities described on this page are algorithm function objects (informally known as niebloids), that is: . Explicit template argument lists cannot be specified when calling any of them.

std::ranges:: for_each, std::ranges:: for_each_result - Reference

en.cppreference.com/w/cpp/algorithm/ranges/for_each     2025-03-27T00:00:00.0000000
For both overloads, if the iterator type is mutable, f may modify the elements of the range through the dereferenced iterator. If f returns a result, the result is ignored.. The function-like entities described on this page are algorithm function objects (informally known as niebloids), that is: . Explicit template argument lists cannot be specified when calling any of them.

std::ranges:: shift_left, std::ranges:: shift_right - Reference

en.cppreference.com/w/cpp/algorithm/ranges/shift     2025-02-11T00:00:00.0000000
Notes. ranges::shift_left / ranges::shift_right has better efficiency on common implementations if I models bidirectional_iterator or (better) random_access_iterator.. Implementations (e.g. MSVC STL) may enable vectorization when the iterator type models contiguous_iterator and swapping its value type calls neither non-trivial special member function nor ADL-found swap.

std::ranges::in_value_result - cppreference.com

www.en.cppreference.com/w/cpp/algorithm/ranges/return_types/in_value_result.html
Each standard library algorithm that uses this family of return types declares a new alias type, e.g. using merge_result = in_in_out_result < I1, I2, O >;. The names for such aliases are formed by adding the suffix "_result" to the algorithm's name. So, the return type of std::ranges::merge can be named as std::ranges::merge_result.
Feedback