[PATCH] libstdc++: Doxygen improvements in <bits/stl_algo.h>
Tomasz Kaminski
tkaminsk@redhat.com
Mon Jun 29 06:34:14 GMT 2026
On Tue, Jun 23, 2026 at 4:01 PM Jonathan Wakely <jwakely@redhat.com> wrote:
> I noticed that we were generating ill-formed XML because of a Doxygen
> bug (https://github.com/doxygen/doxygen/issues/12113) and so switched
> some of the messy Doxygen comments to use Markdown instead of (mis)using
> the @p and @c Doxygen commands (and then having to write C++ code
> expressions without spaces so that the @p applies to the whole thing).
>
Using notation based on backticks, which is more familiar (at least to me),
really helps with readability of the comment as seen is source. And I think
they become de-facto standard.
>
> For half-closed range expressions like [first, last) I've enclosed the
> whole thing in backticks, so that the opening bracket, the comma, and
> the closing paren are in code font. While this seems less formally
> correct, the generated HTML looks better to me.
>
Same.
> With [`first`,`last`)
> the bracket and paren are narrower and the expression seems less clear.
>
Agreed.
>
> This change also adds @cond/@endcond pairs to prevent internal helper
> functions from being added to the docs.
>
> Finally, this removes another config variable which has been obsoleted
> in the latest Doxygen 1.17.0 release.
>
> libstdc++-v3/ChangeLog:
>
> * doc/doxygen/user.cfg.in (DOT_MULTI_TARGETS): Remove obsolete
> config.
> * include/bits/stl_algo.h: Use markdown and fix some typos in
> Doxygen comments. Mark internal helper functions as
> undocumented.
> ---
>
> Tested x86_64-linux.
>
LGTM.
>
> libstdc++-v3/doc/doxygen/user.cfg.in | 9 -
> libstdc++-v3/include/bits/stl_algo.h | 625 ++++++++++++++-------------
> 2 files changed, 333 insertions(+), 301 deletions(-)
>
> diff --git a/libstdc++-v3/doc/doxygen/user.cfg.in
> b/libstdc++-v3/doc/doxygen/user.cfg.in
> index 9393d5dfb437..f2b2a9505ec7 100644
> --- a/libstdc++-v3/doc/doxygen/user.cfg.in
> +++ b/libstdc++-v3/doc/doxygen/user.cfg.in
> @@ -3376,15 +3376,6 @@ DOT_GRAPH_MAX_NODES = 50
>
> MAX_DOT_GRAPH_DEPTH = 0
>
> -# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple
> output
> -# files in one run (i.e. multiple -o and -T options on the command line).
> This
> -# makes dot run faster, but since only newer versions of dot (>1.8.10)
> support
> -# this, this feature is disabled by default.
> -# The default value is: NO.
> -# This tag requires that the tag HAVE_DOT is set to YES.
> -
> -DOT_MULTI_TARGETS = YES
> -
> # If the GENERATE_LEGEND tag is set to YES Doxygen will generate a legend
> page
> # explaining the meaning of the various boxes and arrows in the dot
> generated
> # graphs.
> diff --git a/libstdc++-v3/include/bits/stl_algo.h
> b/libstdc++-v3/include/bits/stl_algo.h
> index f15b3e4992f6..800c176cd5bd 100644
> --- a/libstdc++-v3/include/bits/stl_algo.h
> +++ b/libstdc++-v3/include/bits/stl_algo.h
> @@ -81,6 +81,8 @@ namespace std _GLIBCXX_VISIBILITY(default)
> {
> _GLIBCXX_BEGIN_NAMESPACE_VERSION
>
> + /// @cond undocumented
> +
> /// Swaps the median value of *__a, *__b and *__c under __comp to
> *__result
> template<typename _Iterator, typename _Compare>
> _GLIBCXX20_CONSTEXPR
> @@ -295,6 +297,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> }
> }
>
> + /// @endcond
> +
> /**
> * @brief Find last matching subsequence in a sequence.
> * @ingroup non_mutating_algorithms
> @@ -302,24 +306,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __last1 End of range to search.
> * @param __first2 Start of sequence to match.
> * @param __last2 End of sequence to match.
> - * @return The last iterator @c i in the range
> - * @p [__first1,__last1-(__last2-__first2)) such that @c *(i+N) ==
> - * @p *(__first2+N) for each @c N in the range @p
> - * [0,__last2-__first2), or @p __last1 if no such iterator exists.
> + * @return The last iterator `i` in the range
> + * `[__first1, __last1 - (__last2 - __first2))` such that
> + * `*(i + N) == *(__first2 + N)` for each `N` in the range
> + * `[0, __last2 - __first2)`, or `__last1` if no such
> iterator
> + * exists.
> *
> - * Searches the range @p [__first1,__last1) for a sub-sequence that
> - * compares equal value-by-value with the sequence given by @p
> - * [__first2,__last2) and returns an iterator to the __first
> - * element of the sub-sequence, or @p __last1 if the sub-sequence
> + * Searches the range `[__first1, __last1)` for a sub-sequence that
> + * compares equal value-by-value with the sequence given by
> + * `[__first2, __last2)` and returns an iterator to the first
> + * element of the sub-sequence, or `__last1` if the sub-sequence
> * is not found. The sub-sequence will be the last such
> - * subsequence contained in [__first1,__last1).
> + * subsequence contained in `[__first1, __last1)`.
> *
> - * Because the sub-sequence must lie completely within the range @p
> - * [__first1,__last1) it must start at a position less than @p
> - * __last1-(__last2-__first2) where @p __last2-__first2 is the
> + * Because the sub-sequence must lie completely within the range
> + * `[__first1, __last1)` it must start at a position less than
> + * `__last1 - (__last2 - __first2)` where `__last2 - __first2` is the
> * length of the sub-sequence. This means that the returned
> - * iterator @c i will be in the range @p
> - * [__first1,__last1-(__last2-__first2))
> + * iterator `i` will be in the range
> + * `[__first1, __last1 - (__last2 - __first2))`
> */
> template<typename _ForwardIterator1, typename _ForwardIterator2>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -350,25 +355,25 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __first2 Start of sequence to match.
> * @param __last2 End of sequence to match.
> * @param __comp The predicate to use.
> - * @return The last iterator @c i in the range @p
> - * [__first1,__last1-(__last2-__first2)) such that @c
> - * predicate(*(i+N), @p (__first2+N)) is true for each @c N in the
> - * range @p [0,__last2-__first2), or @p __last1 if no such iterator
> - * exists.
> + * @return The last iterator `i` in the range
> + * `[__first1, __last1-(__last2 - __first2))` such that
> + * `__comp(*(i + N), (__first2 + N))` is true for each `N` in
> the
> + * range `[0, __last2 - __first2)`, or `__last1` if no such
> iterator
> + * exists.
> *
> - * Searches the range @p [__first1,__last1) for a sub-sequence that
> - * compares equal value-by-value with the sequence given by @p
> - * [__first2,__last2) using comp as a predicate and returns an
> - * iterator to the first element of the sub-sequence, or @p __last1
> + * Searches the range `[__first1, __last1)` for a sub-sequence that
> + * compares equal value-by-value with the sequence given by
> + * `[__first2, __last2)` using `__comp` as a predicate and returns an
> + * iterator to the first element of the sub-sequence, or `__last1`
> * if the sub-sequence is not found. The sub-sequence will be the
> - * last such subsequence contained in [__first,__last1).
> + * last such subsequence contained in `[__first, __last1)`.
> *
> - * Because the sub-sequence must lie completely within the range @p
> - * [__first1,__last1) it must start at a position less than @p
> - * __last1-(__last2-__first2) where @p __last2-__first2 is the
> + * Because the sub-sequence must lie completely within the range
> + * `[__first1, __last1)` it must start at a position less than
> + * `__last1 - (__last2 - __first2)` where `__last2 - __first2` is the
> * length of the sub-sequence. This means that the returned
> - * iterator @c i will be in the range @p
> - * [__first1,__last1-(__last2-__first2))
> + * iterator `i` will be in the range
> + * `[__first1, __last1 - (__last2 - __first2))`
> */
> template<typename _ForwardIterator1, typename _ForwardIterator2,
> typename _BinaryPredicate>
> @@ -403,8 +408,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __pred A predicate.
> * @return True if the check is true, false otherwise.
> *
> - * Returns true if @p __pred is true for each element in the range
> - * @p [__first,__last), and false otherwise.
> + * Returns true if `__pred` is true for each element in the range
> + * `[__first, __last)`, and false otherwise.
> */
> template<typename _InputIterator, typename _Predicate>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -421,8 +426,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __pred A predicate.
> * @return True if the check is true, false otherwise.
> *
> - * Returns true if @p __pred is false for each element in the range
> - * @p [__first,__last), and false otherwise.
> + * Returns true if `__pred` is false for each element in the range
> + * `[__first, __last)`, and false otherwise.
> */
> template<typename _InputIterator, typename _Predicate>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -439,8 +444,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __pred A predicate.
> * @return True if the check is true, false otherwise.
> *
> - * Returns true if an element exists in the range @p
> - * [__first,__last) such that @p __pred is true, and false
> + * Returns true if an element exists in the range
> + * `[__first, __last)` such that `__pred` is true, and false
> * otherwise.
> */
> template<typename _InputIterator, typename _Predicate>
> @@ -456,8 +461,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __first An input iterator.
> * @param __last An input iterator.
> * @param __pred A predicate.
> - * @return The first iterator @c i in the range @p [__first,__last)
> - * such that @p __pred(*i) is false, or @p __last if no such iterator
> exists.
> + * @return The first iterator `i` in the range `[__first, __last)`
> + * such that `__pred(*i)` is false, or `__last` if no such iterator
> exists.
> */
> template<typename _InputIterator, typename _Predicate>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -479,9 +484,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __first An input iterator.
> * @param __last An input iterator.
> * @param __pred A predicate.
> - * @return True if the range @p [__first,__last) is partitioned by @p
> - * __pred, i.e. if all elements that satisfy @p __pred appear before
> those
> - * that do not.
> + * @return True if the range `[__first, __last)` is partitioned by
> + * `__pred`, i.e. if all elements that satisfy `__pred` appear before
> + * those that do not.
> */
> template<typename _InputIterator, typename _Predicate>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -502,8 +507,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __first An iterator.
> * @param __last Another iterator.
> * @param __pred A predicate.
> - * @return An iterator @p mid such that @p all_of(__first, mid,
> __pred)
> - * and @p none_of(mid, __last, __pred) are both true.
> + * @return An iterator `mid` such that `all_of(__first, mid, __pred)`
> + * and `none_of(mid, __last, __pred)` are both true.
> */
> template<typename _ForwardIterator, typename _Predicate>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -567,9 +572,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __value The value to be removed.
> * @return An iterator designating the end of the resulting sequence.
> *
> - * Copies each element in the range @p [__first,__last) not equal
> - * to @p __value to the range beginning at @p __result.
> - * remove_copy() is stable, so the relative order of elements that
> + * Copies each element in the range `[__first, __last)` not equal
> + * to `__value` to the range beginning at `__result`.
> + * `remove_copy` is stable, so the relative order of elements that
> * are copied is unchanged.
> */
> template<typename _InputIterator, typename _OutputIterator, typename
> _Tp>
> @@ -599,10 +604,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __pred A predicate.
> * @return An iterator designating the end of the resulting sequence.
> *
> - * Copies each element in the range @p [__first,__last) for which
> - * @p __pred returns false to the range beginning at @p __result.
> + * Copies each element in the range `[__first, __last)` for which
> + * `__pred` returns false to the range beginning at `__result`.
> *
> - * remove_copy_if() is stable, so the relative order of elements that
> are
> + * `remove_copy_if` is stable, so the relative order of elements that
> are
> * copied is unchanged.
> */
> template<typename _InputIterator, typename _OutputIterator,
> @@ -633,10 +638,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __pred A predicate.
> * @return An iterator designating the end of the resulting sequence.
> *
> - * Copies each element in the range @p [__first,__last) for which
> - * @p __pred returns true to the range beginning at @p __result.
> + * Copies each element in the range `[__first, __last)` for which
> + * `__pred` returns true to the range beginning at `__result`.
> *
> - * copy_if() is stable, so the relative order of elements that are
> + * `copy_if` is stable, so the relative order of elements that are
> * copied is unchanged.
> */
> template<typename _InputIterator, typename _OutputIterator,
> @@ -671,7 +676,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __result An output iterator.
> * @return result+n.
> *
> - * This inline function will boil down to a call to @c memmove whenever
> + * This inline function will boil down to a call to `memmove` whenever
> * possible. Failing that, if random access iterators are passed,
> then the
> * loop count will be known (and therefore a candidate for compiler
> * optimizations such as unrolling).
> @@ -709,9 +714,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __pred A predicate.
> * @return A pair designating the ends of the resulting sequences.
> *
> - * Copies each element in the range @p [__first,__last) for which
> - * @p __pred returns true to the range beginning at @p out_true
> - * and each element for which @p __pred returns false to @p
> __out_false.
> + * Copies each element in the range `[__first, __last)` for which
> + * `__pred` returns true to the range beginning at `__out_true`
> + * and each element for which `__pred` returns false to `__out_false`.
> */
> template<typename _InputIterator, typename _OutputIterator1,
> typename _OutputIterator2, typename _Predicate>
> @@ -755,13 +760,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __value The value to be removed.
> * @return An iterator designating the end of the resulting sequence.
> *
> - * All elements equal to @p __value are removed from the range
> - * @p [__first,__last).
> + * All elements equal to `__value` are removed from the range
> + * `[__first, __last)`.
> *
> - * remove() is stable, so the relative order of elements that are
> + * `remove` is stable, so the relative order of elements that are
> * not removed is unchanged.
> *
> - * Elements between the end of the resulting sequence and @p __last
> + * Elements between the end of the resulting sequence and `__last`
> * are still present, but their value is unspecified.
> */
> template<typename _ForwardIterator, typename _Tp>
> @@ -789,13 +794,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __pred A predicate.
> * @return An iterator designating the end of the resulting sequence.
> *
> - * All elements for which @p __pred returns true are removed from the
> range
> - * @p [__first,__last).
> + * All elements for which `__pred` returns true are removed from the
> range
> + * `[__first, __last)`.
> *
> - * remove_if() is stable, so the relative order of elements that are
> + * `remove_if` is stable, so the relative order of elements that are
> * not removed is unchanged.
> *
> - * Elements between the end of the resulting sequence and @p __last
> + * Elements between the end of the resulting sequence and `__last`
> * are still present, but their value is unspecified.
> */
> template<typename _ForwardIterator, typename _Predicate>
> @@ -861,9 +866,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> *
> * Removes all but the first element from each group of consecutive
> * values that compare equal.
> - * unique() is stable, so the relative order of elements that are
> + * `unique` is stable, so the relative order of elements that are
> * not removed is unchanged.
> - * Elements between the end of the resulting sequence and @p __last
> + * Elements between the end of the resulting sequence and `__last`
> * are still present, but their value is unspecified.
> */
> template<typename _ForwardIterator>
> @@ -890,10 +895,10 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @return An iterator designating the end of the resulting sequence.
> *
> * Removes all but the first element from each group of consecutive
> - * values for which @p __binary_pred returns true.
> - * unique() is stable, so the relative order of elements that are
> + * values for which `__binary_pred` returns true.
> + * `unique` is stable, so the relative order of elements that are
> * not removed is unchanged.
> - * Elements between the end of the resulting sequence and @p __last
> + * Elements between the end of the resulting sequence and `__last`
> * are still present, but their value is unspecified.
> */
> template<typename _ForwardIterator, typename _BinaryPredicate>
> @@ -913,6 +918,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> return std::__unique(__first, __last, __binary_pred);
> }
>
> + /// @cond undocumented
> +
> // _GLIBCXX_RESOLVE_LIB_DEFECTS
> // 4269. unique_copy passes arguments to its predicate backwards
>
> @@ -1043,17 +1050,18 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> }
> }
>
> + /// @endcond
> +
> /**
> * @brief Reverse a sequence.
> * @ingroup mutating_algorithms
> * @param __first A bidirectional iterator.
> * @param __last A bidirectional iterator.
> - * @return reverse() returns no value.
> *
> - * Reverses the order of the elements in the range @p [__first,__last),
> + * Reverses the order of the elements in the range `[__first, __last)`,
> * so that the first element becomes the last etc.
> - * For every @c i such that @p 0<=i<=(__last-__first)/2), @p reverse()
> - * swaps @p *(__first+i) and @p *(__last-(i+1))
> + * For every `i` such that `0<=i<=(__last-__first)/2)`, reverse()
> + * swaps `*(__first+i)` and `*(__last-(i+1))`.
> */
> template<typename _BidirectionalIterator>
> _GLIBCXX20_CONSTEXPR
> @@ -1075,13 +1083,13 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> * @param __result An output iterator.
> * @return An iterator designating the end of the resulting sequence.
> *
> - * Copies the elements in the range @p [__first,__last) to the
> - * range @p [__result,__result+(__last-__first)) such that the
> - * order of the elements is reversed. For every @c i such that @p
> - * 0<=i<=(__last-__first), @p reverse_copy() performs the
> - * assignment @p *(__result+(__last-__first)-1-i) = *(__first+i).
> - * The ranges @p [__first,__last) and @p
> - * [__result,__result+(__last-__first)) must not overlap.
> + * Copies the elements in the range `[__first, __last)` to the
> + * range `[__result, __result + (__last - __first))` such that the
> + * order of the elements is reversed. For every `i` such that
> + * `0 <= i <= (__last - __first)`, `reverse_copy` performs the
> + * assignment `*(__result + (__last - __first) - 1 - i) = *(__first +
> i)`.
> + * The ranges `[__first, __last)` and
> + * `[__result, __result + (__last - __first))` must not overlap.
> */
> template<typename _BidirectionalIterator, typename _OutputIterator>
> _GLIBCXX20_CONSTEXPR
> @@ -1105,6 +1113,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> return __result;
> }
>
> + /// @cond undocumented
> +
> /**
> * This is a helper function for the rotate algorithm specialized on
> RAIs.
> * It returns the greatest common divisor of two integer values.
> @@ -1122,9 +1132,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
> }
> return __m;
> }
> + /// @endcond
>
> _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
>
> + /// @cond undocumented
> +
> /// This is a helper function for the rotate algorithm.
> template<typename _ForwardIterator>
> _GLIBCXX20_CONSTEXPR
> @@ -1303,6 +1316,8 @@ _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
> }
> }
>
> + /// @endcond
> +
> // _GLIBCXX_RESOLVE_LIB_DEFECTS
> // DR 488. rotate throws away useful information
> /**
> @@ -1313,18 +1328,18 @@ _GLIBCXX_BEGIN_INLINE_ABI_NAMESPACE(_V2)
> * @param __last A forward iterator.
> * @return first + (last - middle).
> *
> - * Rotates the elements of the range @p [__first,__last) by
> - * @p (__middle - __first) positions so that the element at @p __middle
> - * is moved to @p __first, the element at @p __middle+1 is moved to
> - * @p __first+1 and so on for each element in the range
> - * @p [__first,__last).
> + * Rotates the elements of the range `[__first, __last)` by
> + * `(__middle - __first)` positions so that the element at `__middle`
> + * is moved to `__first`, the element at `__middle+1` is moved to
> + * `__first+1` and so on for each element in the range
> + * `[__first, __last)`.
> *
> - * This effectively swaps the ranges @p [__first,__middle) and
> - * @p [__middle,__last).
> + * This effectively swaps the ranges `[__first, __middle)` and
> + * `[__middle, __last)`.
> *
> * Performs
> - * @p *(__first+(n+(__last-__middle))%(__last-__first))=*(__first+n)
> - * for each @p n in the range @p [0,__last-__first).
> + * `*(__first+(n+(__last - __middle)) % (__last - __first)) =
> *(__first+n)`
> + * for each `n` in the range `[0, __last - __first)`.
> */
> template<typename _ForwardIterator>
> _GLIBCXX20_CONSTEXPR
> @@ -1353,16 +1368,16 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __result An output iterator.
> * @return An iterator designating the end of the resulting sequence.
> *
> - * Copies the elements of the range @p [__first,__last) to the
> - * range beginning at @result, rotating the copied elements by
> - * @p (__middle-__first) positions so that the element at @p __middle
> - * is moved to @p __result, the element at @p __middle+1 is moved
> - * to @p __result+1 and so on for each element in the range @p
> - * [__first,__last).
> + * Copies the elements of the range `[__first, __last)` to the
> + * range beginning at `result`, rotating the copied elements by
> + * `(__middle-__first)` positions so that the element at `__middle`
> + * is moved to `__result`, the element at `__middle+1` is moved
> + * to `__result+1` and so on for each element in the range
> + * `[__first, __last)`.
> *
> * Performs
> - * @p *(__result+(n+(__last-__middle))%(__last-__first))=*(__first+n)
> - * for each @p n in the range @p [0,__last-__first).
> + * `*(__result+(n+(__last - __middle)) % (__last - __first)) =
> *(__first+n)`
> + * for each `n` in the range `[0, __last - __first)`.
> */
> template<typename _ForwardIterator, typename _OutputIterator>
> _GLIBCXX20_CONSTEXPR
> @@ -1381,6 +1396,8 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> std::copy(__middle, __last, __result));
> }
>
> + /// @cond undocumented
> +
> /// This is a helper function...
> template<typename _ForwardIterator, typename _Predicate>
> _GLIBCXX20_CONSTEXPR
> @@ -1435,10 +1452,13 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> ++__first;
> }
> }
> + /// @endcond
>
> #if _GLIBCXX_HOSTED
> // partition
>
> + /// @cond undocumented
> +
> /// This is a helper function...
> /// Requires __first != __last and !__pred(*__first)
> /// and __len == distance(__first, __last).
> @@ -1545,6 +1565,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> __buf.begin(),
> _DistanceType(__buf.size()));
> }
> + /// @endcond
>
> /**
> * @brief Move elements for which a predicate is true to the beginning
> @@ -1552,16 +1573,16 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @ingroup mutating_algorithms
> * @param __first A forward iterator.
> * @param __last A forward iterator.
> - * @param __pred A predicate functor.
> - * @return An iterator @p middle such that @p __pred(i) is true for
> each
> - * iterator @p i in the range @p [first,middle) and false for each @p i
> - * in the range @p [middle,last).
> + * @param __pred A predicate function object.
> + * @return An iterator `middle` such that `__pred(i)` is true for each
> + * iterator `i` in the range `[__first, middle)` and false for each `i`
> + * in the range `[middle, __last)`.
> *
> - * Performs the same function as @p partition() with the additional
> + * Performs the same function as `partition` with the additional
> * guarantee that the relative ordering of elements in each group is
> - * preserved, so any two elements @p x and @p y in the range
> - * @p [__first,__last) such that @p __pred(x)==__pred(y) will have the
> same
> - * relative ordering after calling @p stable_partition().
> + * preserved, so any two elements `x` and `y` in the range
> + * `[__first, __last)` such that `__pred(x) == __pred(y)` will have the
> + * same relative ordering after calling stable_partition().
> */
> template<typename _ForwardIterator, typename _Predicate>
> _GLIBCXX26_CONSTEXPR
> @@ -1694,7 +1715,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __last Another input iterator.
> * @param __result_first A random-access iterator.
> * @param __result_last Another random-access iterator.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> * @return An iterator indicating the end of the resulting sequence.
> *
> * Copies and sorts the smallest `N` values from the range
> @@ -1960,9 +1981,9 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __first An iterator to the start of a sorted range.
> * @param __last A past-the-end iterator for the sorted range.
> * @param __val The search term.
> - * @param __comp A functor to use for comparisons.
> + * @param __comp A function object to use for comparisons.
> * @return An iterator pointing to the first element _not less than_
> - * `__val`, or `end()` if every element is less than `__val`.
> + * `__val`, or `__last` if every element is less than `__val`.
> * @ingroup binary_search_algorithms
> *
> * The comparison function should have the same effects on ordering as
> @@ -1984,6 +2005,8 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> return std::__lower_bound(__first, __last, __val, __comp);
> }
>
> + /// @cond undocumented
> +
> template<typename _ForwardIterator, typename _Tp, typename _Compare>
> _GLIBCXX20_CONSTEXPR
> _ForwardIterator
> @@ -2011,16 +2034,17 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
> return __first;
> }
> + /// @endcond
>
> /**
> - * @brief Finds the last position in which @p __val could be inserted
> + * @brief Finds the last position in which `__val` could be inserted
> * without changing the ordering.
> * @ingroup binary_search_algorithms
> * @param __first An iterator.
> * @param __last Another iterator.
> * @param __val The search term.
> - * @return An iterator pointing to the first element greater than @p
> __val,
> - * or end() if no elements are greater than @p __val.
> + * @return An iterator pointing to the first element greater than
> `__val`,
> + * or `__last` if no elements are greater than `__val`.
> * @ingroup binary_search_algorithms
> */
> template<typename _ForwardIterator, typename _Tp>
> @@ -2040,15 +2064,15 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
>
> /**
> - * @brief Finds the last position in which @p __val could be inserted
> + * @brief Finds the last position in which `__val` could be inserted
> * without changing the ordering.
> * @ingroup binary_search_algorithms
> * @param __first An iterator.
> * @param __last Another iterator.
> * @param __val The search term.
> - * @param __comp A functor to use for comparisons.
> - * @return An iterator pointing to the first element greater than @p
> __val,
> - * or end() if no elements are greater than @p __val.
> + * @param __comp A function object to use for comparisons.
> + * @return An iterator pointing to the first element greater than
> `__val`,
> + * or `__last` if no elements are greater than `__val`.
> * @ingroup binary_search_algorithms
> *
> * The comparison function should have the same effects on ordering as
> @@ -2070,6 +2094,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> return std::__upper_bound(__first, __last, __val, __comp);
> }
>
> + /// @cond undocumented
> template<typename _ForwardIterator, typename _Tp, typename _Compare>
> _GLIBCXX20_CONSTEXPR
> pair<_ForwardIterator, _ForwardIterator>
> @@ -2106,9 +2131,10 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
> return pair<_ForwardIterator, _ForwardIterator>(__first, __first);
> }
> + /// @endcond
>
> /**
> - * @brief Finds the largest subrange in which @p __val could be
> inserted
> + * @brief Finds the largest subrange in which `__val` could be inserted
> * at any place in it without changing the ordering.
> * @ingroup binary_search_algorithms
> * @param __first An iterator.
> @@ -2118,10 +2144,10 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @ingroup binary_search_algorithms
> *
> * This is equivalent to
> - * @code
> + * ```
> * std::make_pair(lower_bound(__first, __last, __val),
> * upper_bound(__first, __last, __val))
> - * @endcode
> + * ```
> * but does not actually call those functions.
> */
> template<typename _ForwardIterator, typename _Tp>
> @@ -2144,12 +2170,12 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
>
> /**
> - * @brief Finds the largest subrange in which @p __val could be
> inserted
> + * @brief Finds the largest subrange in which `__val` could be inserted
> * at any place in it without changing the ordering.
> * @param __first An iterator.
> * @param __last Another iterator.
> * @param __val The search term.
> - * @param __comp A functor to use for comparisons.
> + * @param __comp A function object to use for comparisons.
> * @return An pair of iterators defining the subrange.
> * @ingroup binary_search_algorithms
> *
> @@ -2186,11 +2212,10 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __first An iterator.
> * @param __last Another iterator.
> * @param __val The search term.
> - * @return True if @p __val (or its equivalent) is in [@p
> - * __first,@p __last ].
> + * @return True if `__val` (or its equivalent) is in `[__first,
> __last)`.
> *
> - * Note that this does not actually return an iterator to @p __val.
> For
> - * that, use std::find or a container's specialized find member
> functions.
> + * Note that this does not actually return an iterator to `__val`. For
> + * that, use `std::find` or a container's specialized find member
> functions.
> */
> template<typename _ForwardIterator, typename _Tp>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -2216,11 +2241,11 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __first An iterator.
> * @param __last Another iterator.
> * @param __val The search term.
> - * @param __comp A functor to use for comparisons.
> - * @return True if @p __val (or its equivalent) is in @p
> [__first,__last].
> + * @param __comp A function object to use for comparisons.
> + * @return True if `__val` (or its equivalent) is in `[__first,
> __last)`.
> *
> - * Note that this does not actually return an iterator to @p __val.
> For
> - * that, use std::find or a container's specialized find member
> functions.
> + * Note that this does not actually return an iterator to `__val`. For
> + * that, use `std::find` or a container's specialized find member
> functions.
> *
> * The comparison function should have the same effects on ordering as
> * the function used for the initial sort.
> @@ -2247,6 +2272,8 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
>
> // merge
>
> + /// @cond undocumented
> +
> /// This is a helper function for the __merge_adaptive routines.
> template<typename _InputIterator1, typename _InputIterator2,
> typename _OutputIterator, typename _Compare>
> @@ -2524,6 +2551,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> (__first, __middle, __last, __len1, __len2, __comp);
> #endif
> }
> + /// @endcond
>
> /**
> * @brief Merges two sorted ranges in place.
> @@ -2532,15 +2560,15 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __middle Another iterator.
> * @param __last Another iterator.
> *
> - * Merges two sorted and consecutive ranges, [__first,__middle) and
> - * [__middle,__last), and puts the result in [__first,__last). The
> + * Merges two sorted and consecutive ranges, `[__first, __middle)` and
> + * `[__middle, __last)`, and puts the result in `[__first, __last)`.
> The
> * output will be sorted. The sort is @e stable, that is, for
> * equivalent elements in the two ranges, elements from the first
> * range will always come before elements from the second.
> *
> - * If enough additional memory is available, this takes
> (__last-__first)-1
> + * If enough additional memory is available, this takes
> `(__last-__first)-1`
> * comparisons. Otherwise an NlogN algorithm is used, where N is
> - * distance(__first,__last).
> + * `distance(__first,__last)`.
> */
> template<typename _BidirectionalIterator>
> _GLIBCXX26_CONSTEXPR
> @@ -2568,7 +2596,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __first An iterator.
> * @param __middle Another iterator.
> * @param __last Another iterator.
> - * @param __comp A functor to use for comparisons.
> + * @param __comp A function object to use for comparisons.
> *
> * Merges two sorted and consecutive ranges, [__first,__middle) and
> * [middle,last), and puts the result in [__first,__last). The output
> will
> @@ -2576,9 +2604,9 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * elements in the two ranges, elements from the first range will
> always
> * come before elements from the second.
> *
> - * If enough additional memory is available, this takes
> (__last-__first)-1
> + * If enough additional memory is available, this takes
> `(__last-__first)-1`
> * comparisons. Otherwise an NlogN algorithm is used, where N is
> - * distance(__first,__last).
> + * `distance(__first,__last)`.
> *
> * The comparison function should have the same effects on ordering as
> * the function used for the initial sort.
> @@ -2604,6 +2632,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> std::__inplace_merge(__first, __middle, __last, __comp);
> }
>
> + /// @cond undocumented
>
> /// This is a helper function for the __merge_sort_loop routines.
> template<typename _InputIterator, typename _OutputIterator,
> @@ -2789,6 +2818,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
>
> return __first2 == __last2;
> }
> + /// @endcond
>
> /**
> * @brief Determines whether all elements of a sequence exists in a
> range.
> @@ -2796,16 +2826,16 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __last1 End of search range.
> * @param __first2 Start of sequence
> * @param __last2 End of sequence.
> - * @return True if each element in [__first2,__last2) is contained in
> order
> - * within [__first1,__last1). False otherwise.
> + * @return True if each element in `[__first2, __last2)` is contained
> in
> + * order within `[__first1, __last1)`. False otherwise.
> * @ingroup set_algorithms
> *
> - * This operation expects both [__first1,__last1) and
> - * [__first2,__last2) to be sorted. Searches for the presence of
> - * each element in [__first2,__last2) within [__first1,__last1).
> + * This operation expects both `[__first1, __last1)` and
> + * `[__first2, __last2)` to be sorted. Searches for the presence of
> + * each element in `[__first2, __last2)` within `[__first1, __last1)`.
> * The iterators over each range only move forward, so this is a
> - * linear algorithm. If an element in [__first2,__last2) is not
> - * found before the search iterator reaches @p __last2, false is
> + * linear algorithm. If an element in `[__first2, __last2)` is not
> + * found before the search iterator reaches `__last2`, false is
> * returned.
> */
> template<typename _InputIterator1, typename _InputIterator2>
> @@ -2841,17 +2871,17 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __first2 Start of sequence
> * @param __last2 End of sequence.
> * @param __comp Comparison function to use.
> - * @return True if each element in [__first2,__last2) is contained
> - * in order within [__first1,__last1) according to comp. False
> + * @return True if each element in `[__first2, __last2)` is contained
> + * in order within `[__first1, __last1)` according to comp. False
> * otherwise. @ingroup set_algorithms
> *
> - * This operation expects both [__first1,__last1) and
> - * [__first2,__last2) to be sorted. Searches for the presence of
> - * each element in [__first2,__last2) within [__first1,__last1),
> + * This operation expects both `[__first1, __last1)` and
> + * `[__first2, __last2)` to be sorted. Searches for the presence of
> + * each element in `[__first2, __last2)` within `[__first1, __last1)`,
> * using comp to decide. The iterators over each range only move
> * forward, so this is a linear algorithm. If an element in
> - * [__first2,__last2) is not found before the search iterator
> - * reaches @p __last2, false is returned.
> + * `[__first2, __last2)` is not found before the search iterator
> + * reaches `__last2`, false is returned.
> */
> template<typename _InputIterator1, typename _InputIterator2,
> typename _Compare>
> @@ -2888,6 +2918,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> // min_element
> // max_element
>
> + /// @cond undocumented
> template<typename _BidirectionalIterator, typename _Compare>
> _GLIBCXX20_CONSTEXPR
> bool
> @@ -2925,9 +2956,10 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
> }
> }
> + /// @endcond
>
> /**
> - * @brief Permute range into the next @e dictionary ordering.
> + * @brief Permute range into the next dictionary ordering.
> * @ingroup sorting_algorithms
> * @param __first Start of range.
> * @param __last End of range.
> @@ -2956,16 +2988,16 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
>
> /**
> - * @brief Permute range into the next @e dictionary ordering using
> - * comparison functor.
> + * @brief Permute range into the next dictionary ordering using a
> + * comparison function.
> * @ingroup sorting_algorithms
> * @param __first Start of range.
> * @param __last End of range.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> * @return False if wrapped to first permutation, true otherwise.
> *
> - * Treats all permutations of the range [__first,__last) as a set of
> - * @e dictionary sorted sequences ordered by @p __comp. Permutes the
> current
> + * Treats all permutations of the range `[__first, __last)` as a set of
> + * @e dictionary sorted sequences ordered by `__comp`. Permutes the
> current
> * sequence into the next one of this set. Returns true if there are
> more
> * sequences to generate. If the sequence is the largest of the set,
> the
> * smallest is generated and false returned.
> @@ -2988,6 +3020,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> return std::__next_permutation(__first, __last, __comp);
> }
>
> + /// @cond undocumented
> template<typename _BidirectionalIterator, typename _Compare>
> _GLIBCXX20_CONSTEXPR
> bool
> @@ -3025,6 +3058,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
> }
> }
> + /// @endcond
>
> /**
> * @brief Permute range into the previous @e dictionary ordering.
> @@ -3057,12 +3091,12 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
>
> /**
> - * @brief Permute range into the previous @e dictionary ordering using
> - * comparison functor.
> + * @brief Permute range into the previous @e dictionary ordering
> using a
> + * comparison function.
> * @ingroup sorting_algorithms
> * @param __first Start of range.
> * @param __last End of range.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> * @return False if wrapped to last permutation, true otherwise.
> *
> * Treats all permutations of the range [__first,__last) as a set of
> @@ -3092,6 +3126,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> // replace
> // replace_if
>
> + /// @cond undocumented
> template<typename _InputIterator, typename _OutputIterator,
> typename _Predicate, typename _Tp>
> _GLIBCXX20_CONSTEXPR
> @@ -3107,6 +3142,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> *__result = *__first;
> return __result;
> }
> + /// @endcond
>
> /**
> * @brief Copy a sequence, replacing each element of one value with
> another
> @@ -3193,11 +3229,11 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
>
> /**
> * @brief Determines whether the elements of a sequence are sorted
> - * according to a comparison functor.
> + * according to a comparison function.
> * @ingroup sorting_algorithms
> * @param __first An iterator.
> * @param __last Another iterator.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> * @return True if the elements are sorted, false otherwise.
> */
> template<typename _ForwardIterator, typename _Compare>
> @@ -3207,6 +3243,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> _Compare __comp)
> { return std::is_sorted_until(__first, __last, __comp) == __last; }
>
> + /// @cond undocumented
> template<typename _ForwardIterator, typename _Compare>
> _GLIBCXX20_CONSTEXPR
> _ForwardIterator
> @@ -3222,6 +3259,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> return __next;
> return __next;
> }
> + /// @endcond
>
> /**
> * @brief Determines the end of a sorted sequence.
> @@ -3248,11 +3286,11 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
>
> /**
> - * @brief Determines the end of a sorted sequence using comparison
> functor.
> + * @brief Determines the end of a sorted sequence using comparison
> function.
> * @ingroup sorting_algorithms
> * @param __first An iterator.
> * @param __last Another iterator.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> * @return An iterator pointing to the last iterator i in [__first,
> __last)
> * for which the range [__first, i) is sorted.
> */
> @@ -3298,7 +3336,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @ingroup sorting_algorithms
> * @param __a A thing of arbitrary type.
> * @param __b Another thing of arbitrary type.
> - * @param __comp A @link comparison_functors comparison functor
> @endlink.
> + * @param __comp A @link comparison_functors comparison function
> @endlink.
> * @return A pair(__b, __a) if __b is smaller than __a, pair(__a,
> * __b) otherwise.
> */
> @@ -3311,6 +3349,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> : pair<const _Tp&, const _Tp&>(__a, __b);
> }
>
> + /// @cond undocumented
> template<typename _ForwardIterator, typename _Compare>
> _GLIBCXX14_CONSTEXPR
> pair<_ForwardIterator, _ForwardIterator>
> @@ -3370,6 +3409,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
>
> return std::make_pair(__min, __max);
> }
> + /// @endcond
>
> /**
> * @brief Return a pair of iterators pointing to the minimum and
> maximum
> @@ -3403,7 +3443,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @ingroup sorting_algorithms
> * @param __first Start of range.
> * @param __last End of range.
> - * @param __comp Comparison functor.
> + * @param __comp Comparison function object.
> * @return make_pair(m, M), where m is the first iterator i in
> * [__first, __last) such that no other element in the range
> is
> * smaller, and where M is the last iterator i in [__first,
> __last)
> @@ -3482,6 +3522,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> }
>
> #if __glibcxx_robust_nonmodifying_seq_ops // C++ >= 14
> + /// @cond undocumented
> #pragma GCC diagnostic push
> #pragma GCC diagnostic ignored "-Wc++17-extensions" // if constexpr
> template<typename _ForwardIterator1, typename _ForwardIterator2,
> @@ -3540,6 +3581,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> return true;
> }
> #pragma GCC diagnostic pop
> + /// @endcond
>
> /**
> * @brief Checks whether a permutation of the second sequence is equal
> @@ -3623,7 +3665,7 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @param __val A value of arbitrary type.
> * @param __lo A lower limit of arbitrary type.
> * @param __hi An upper limit of arbitrary type.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> * @retval `__lo` if `__comp(__val, __lo)`
> * @retval `__hi` if `__comp(__hi, __val)`
> * @retval `__val` otherwise.
> @@ -3675,9 +3717,9 @@ _GLIBCXX_END_INLINE_ABI_NAMESPACE(_V2)
> * @ingroup mutating_algorithms
> * @param __first A forward iterator.
> * @param __last A forward iterator.
> - * @param __g A UniformRandomNumberGenerator (26.5.1.3).
> + * @param __g A UniformRandomNumberGenerator (C++11 26.5.1.3).
> *
> - * Reorders the elements in the range @p [__first,__last) using @p __g
> to
> + * Reorders the elements in the range `[__first, __last)` using `__g`
> to
> * provide random numbers.
> */
> template<typename _RandomAccessIterator,
> @@ -3757,11 +3799,11 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first An input iterator.
> * @param __last An input iterator.
> * @param __f A unary function object.
> - * @return @p __f
> + * @return `__f`
> *
> - * Applies the function object @p __f to each element in the range
> - * @p [first,last). @p __f must not modify the order of the sequence.
> - * If @p __f has a return value it is ignored.
> + * Applies the function object `__f` to each element in the range
> + * `[__first, __last)`. `__f` must not modify the order of the
> sequence.
> + * If `__f` has a return value it is ignored.
> */
> template<typename _InputIterator, typename _Function>
> _GLIBCXX20_CONSTEXPR
> @@ -3823,8 +3865,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first An input iterator.
> * @param __last An input iterator.
> * @param __val The value to find.
> - * @return The first iterator @c i in the range @p [__first,__last)
> - * such that @c *i == @p __val, or @p __last if no such iterator
> exists.
> + * @return The first iterator `i` in the range `[__first, __last)`
> + * such that `*i == __val`, or `__last` if no such iterator exists.
> */
> template<typename _InputIterator, typename _Tp>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -3881,8 +3923,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first An input iterator.
> * @param __last An input iterator.
> * @param __pred A predicate.
> - * @return The first iterator @c i in the range @p [__first,__last)
> - * such that @p __pred(*i) is true, or @p __last if no such iterator
> exists.
> + * @return The first iterator `i` in the range `[__first, __last)`
> + * such that `__pred(*i)` is true, or `__last` if no such iterator
> exists.
> */
> template<typename _InputIterator, typename _Predicate>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -3906,14 +3948,15 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __last1 End of range to search.
> * @param __first2 Start of match candidates.
> * @param __last2 End of match candidates.
> - * @return The first iterator @c i in the range
> - * @p [__first1,__last1) such that @c *i == @p *(i2) such that i2 is an
> - * iterator in [__first2,__last2), or @p __last1 if no such iterator
> exists.
> + * @return The first iterator `i` in the range
> + * `[__first1, __last1)` such that `*i == *(i2)` such that `i2` is an
> + * iterator in `[__first2, __last2)`, or `__last1` if no such iterator
> + * exists.
> *
> - * Searches the range @p [__first1,__last1) for an element that is
> - * equal to some element in the range [__first2,__last2). If
> - * found, returns an iterator in the range [__first1,__last1),
> - * otherwise returns @p __last1.
> + * Searches the range `[__first1, __last1)` for an element that is
> + * equal to some element in the range `[__first2, __last2)`. If
> + * found, returns an iterator in the range `[__first1, __last1)`,
> + * otherwise returns `__last1`.
> */
> template<typename _InputIterator, typename _ForwardIterator>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -3945,16 +3988,16 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first2 Start of match candidates.
> * @param __last2 End of match candidates.
> * @param __comp Predicate to use.
> - * @return The first iterator @c i in the range
> - * @p [__first1,__last1) such that @c comp(*i, @p *(i2)) is true
> - * and i2 is an iterator in [__first2,__last2), or @p __last1 if no
> + * @return The first iterator `i` in the range
> + * `[__first1, __last1)` such that `comp(*i, *(i2))` is true
> + * and `i2` is an iterator in `[__first2, __last2)`, or `__last1` if no
> * such iterator exists.
> *
>
> - * Searches the range @p [__first1,__last1) for an element that is
> - * equal to some element in the range [__first2,__last2). If
> - * found, returns an iterator in the range [__first1,__last1),
> - * otherwise returns @p __last1.
> + * Searches the range `[__first1, __last1)` for an element that is
> + * equal to some element in the range `[__first2, __last2)`. If
> + * found, returns an iterator in the range `[__first1, __last1)`,
> + * otherwise returns `__last1`.
> */
> template<typename _InputIterator, typename _ForwardIterator,
> typename _BinaryPredicate>
> @@ -3985,9 +4028,9 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @ingroup non_mutating_algorithms
> * @param __first A forward iterator.
> * @param __last A forward iterator.
> - * @return The first iterator @c i such that @c i and @c i+1 are both
> - * valid iterators in @p [__first,__last) and such that @c *i == @c
> *(i+1),
> - * or @p __last if no such iterator exists.
> + * @return The first iterator `i` such that `i` and `i`+1 are both
> + * valid iterators in `[__first, __last)` and such that
> + * `*i == *(i+1)`, or `__last` if no such iterator exists.
> */
> template<typename _ForwardIterator>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -4010,10 +4053,10 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first A forward iterator.
> * @param __last A forward iterator.
> * @param __binary_pred A binary predicate.
> - * @return The first iterator @c i such that @c i and @c i+1 are both
> - * valid iterators in @p [__first,__last) and such that
> - * @p __binary_pred(*i,*(i+1)) is true, or @p __last if no such
> iterator
> - * exists.
> + * @return The first iterator `i` such that `i` and `i`+1 are both
> + * valid iterators in `[__first, __last)` and such that
> + * `__binary_pred(*i,*(i+1))` is true, or `__last` if no such
> + * iterator exists.
> */
> template<typename _ForwardIterator, typename _BinaryPredicate>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -4037,8 +4080,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first An input iterator.
> * @param __last An input iterator.
> * @param __value The value to be counted.
> - * @return The number of iterators @c i in the range @p
> [__first,__last)
> - * for which @c *i == @p __value
> + * @return The number of iterators `i` in the range `[__first,
> __last)`
> + * for which `*i == __value`
> */
> template<typename _InputIterator, typename _Tp>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -4061,8 +4104,8 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first An input iterator.
> * @param __last An input iterator.
> * @param __pred A predicate.
> - * @return The number of iterators @c i in the range @p
> [__first,__last)
> - * for which @p __pred(*i) is true.
> + * @return The number of iterators `i` in the range `[__first,
> __last)`
> + * for which `__pred(*i)` is true.
> */
> template<typename _InputIterator, typename _Predicate>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -4085,24 +4128,24 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __last1 A forward iterator.
> * @param __first2 A forward iterator.
> * @param __last2 A forward iterator.
> - * @return The first iterator @c i in the range @p
> - * [__first1,__last1-(__last2-__first2)) such that @c *(i+N) == @p
> - * *(__first2+N) for each @c N in the range @p
> - * [0,__last2-__first2), or @p __last1 if no such iterator exists.
> + * @return The first iterator `i` in the range
> + * `[__first1, __last1 - (__last2 - __first2))` such that
> + * `*(i+N) == *(__first2+N)` for each `N` in the range
> + * `[0, __last2 - __first2)`, or `__last1` if no such iterator
> + * exists.
> *
> - * Searches the range @p [__first1,__last1) for a sub-sequence that
> - * compares equal value-by-value with the sequence given by @p
> - * [__first2,__last2) and returns an iterator to the first element
> - * of the sub-sequence, or @p __last1 if the sub-sequence is not
> - * found.
> + * Searches the range `[__first1, __last1)` for a sub-sequence that
> + * compares equal value-by-value with the sequence given by
> + * `[__first2, __last2)` and returns an iterator to the first element
> + * of the sub-sequence, or `__last1` if the sub-sequence is not found.
> *
> - * Because the sub-sequence must lie completely within the range @p
> - * [__first1,__last1) it must start at a position less than @p
> - * __last1-(__last2-__first2) where @p __last2-__first2 is the
> + * Because the sub-sequence must lie completely within the range
> + * `[__first1, __last1)` it must start at a position less than
> + * `__last1 - (__last2 - __first2)` where `__last2 - __first2` is the
> * length of the sub-sequence.
> *
> - * This means that the returned iterator @c i will be in the range
> - * @p [__first1,__last1-(__last2-__first2))
> + * This means that the returned iterator `i` will be in the range
> + * `[__first1, __last1 - (__last2 - __first2))`.
> */
> template<typename _ForwardIterator1, typename _ForwardIterator2>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -4130,13 +4173,12 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __last A forward iterator.
> * @param __count The number of consecutive values.
> * @param __val The value to find.
> - * @return The first iterator @c i in the range @p
> - * [__first,__last-__count) such that @c *(i+N) == @p __val for
> - * each @c N in the range @p [0,__count), or @p __last if no such
> - * iterator exists.
> + * @return The first iterator `i` in the range `[__first, __last -
> __count)`
> + * such that `*(i+N) == __val` for each `N` in the range
> + * `[0, __count)`, or `__last` if no such iterator exists.
> *
> - * Searches the range @p [__first,__last) for @p count consecutive
> elements
> - * equal to @p __val.
> + * Searches the range `[__first, __last)` for `__count` consecutive
> + * elements equal to `__val`.
> */
> template<typename _ForwardIterator, typename _Integer, typename _Tp>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -4164,12 +4206,11 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __count The number of consecutive values.
> * @param __val The value to find.
> * @param __binary_pred A binary predicate.
> - * @return The first iterator @c i in the range @p
> - * [__first,__last-__count) such that @p
> - * __binary_pred(*(i+N),__val) is true for each @c N in the range
> - * @p [0,__count), or @p __last if no such iterator exists.
> + * @return The first iterator `i` in the range `[__first, __last -
> __count)`
> + * such that `__binary_pred(*(i+N), __val)` is true for each
> `N` in
> + * the range `[0, __count)`, or `__last` if no such iterator
> exists.
> *
> - * Searches the range @p [__first,__last) for @p __count
> + * Searches the range `[__first, __last)` for `__count`
> * consecutive elements for which the predicate returns true.
> */
> template<typename _ForwardIterator, typename _Integer, typename _Tp,
> @@ -4196,7 +4237,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first A forward iterator.
> * @param __last A forward iterator.
> * @param __searcher A callable object.
> - * @return @p __searcher(__first,__last).first
> + * @return `__searcher(__first,__last).first`
> */
> template<typename _ForwardIterator, typename _Searcher>
> _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR
> @@ -4213,14 +4254,14 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __last An input iterator.
> * @param __result An output iterator.
> * @param __unary_op A unary operator.
> - * @return An output iterator equal to @p __result+(__last-__first).
> + * @return An output iterator equal to `__result + (__last -
> __first)`.
> *
> * Applies the operator to each element in the input range and assigns
> * the results to successive elements of the output sequence.
> - * Evaluates @p *(__result+N)=unary_op(*(__first+N)) for each @c N in
> the
> - * range @p [0,__last-__first).
> + * Evaluates `*(__result+N) = unary_op(*(__first+N))` for each `N` in
> the
> + * range `[0, __last - __first)`.
> *
> - * @p unary_op must not alter its argument.
> + * `__unary_op` must not alter its argument.
> */
> template<typename _InputIterator, typename _OutputIterator,
> typename _UnaryOperation>
> @@ -4249,16 +4290,15 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first2 An input iterator.
> * @param __result An output iterator.
> * @param __binary_op A binary operator.
> - * @return An output iterator equal to @p result+(last-first).
> + * @return An output iterator equal to `__result+(__last1-__first1)`.
> *
> * Applies the operator to the corresponding elements in the two
> * input ranges and assigns the results to successive elements of the
> * output sequence.
> - * Evaluates @p
> - * *(__result+N)=__binary_op(*(__first1+N),*(__first2+N)) for each
> - * @c N in the range @p [0,__last1-__first1).
> + * Evaluates `*(__result+N) = __binary_op(*(__first1+N),
> *(__first2+N))`
> + * for each `N` in the range `[0, __last1-__first1)`.
> *
> - * @p binary_op must not alter either of its arguments.
> + * `__binary_op` must not alter either of its arguments.
> */
> template<typename _InputIterator1, typename _InputIterator2,
> typename _OutputIterator, typename _BinaryOperation>
> @@ -4289,7 +4329,6 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __last A forward iterator.
> * @param __old_value The value to be replaced.
> * @param __new_value The replacement value.
> - * @return replace() returns no value.
> *
> * For each iterator `i` in the range `[__first,__last)` if
> * `*i == __old_value` then the assignment `*i = __new_value` is
> performed.
> @@ -4322,7 +4361,6 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __last A forward iterator.
> * @param __pred A predicate.
> * @param __new_value The replacement value.
> - * @return replace_if() returns no value.
> *
> * For each iterator `i` in the range `[__first,__last)` if
> `__pred(*i)`
> * is true then the assignment `*i = __new_value` is performed.
> @@ -4354,7 +4392,6 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first A forward iterator.
> * @param __last A forward iterator.
> * @param __gen A function object callable with no arguments.
> - * @return generate() returns no value.
> *
> * Performs the assignment `*i = __gen()` for each `i` in the range
> * `[__first, __last)`.
> @@ -4560,7 +4597,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @ingroup mutating_algorithms
> * @param __first A forward iterator.
> * @param __last A forward iterator.
> - * @param __rand The RNG functor or function.
> + * @param __rand The RNG function object.
> *
> * Reorders the elements in the range `[__first, __last)` using
> `__rand`
> * to provide a random distribution. Calling `__rand(N)` for a positive
> @@ -4609,7 +4646,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @ingroup mutating_algorithms
> * @param __first A forward iterator.
> * @param __last A forward iterator.
> - * @param __pred A predicate functor.
> + * @param __pred A predicate function object.
> * @return An iterator `middle` such that `__pred(i)` is true for each
> * iterator `i` in the range `[__first, middle)` and false for each `i`
> * in the range `[middle, __last)`.
> @@ -4679,7 +4716,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first An iterator.
> * @param __middle Another iterator.
> * @param __last Another iterator.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> *
> * Sorts the smallest `(__middle - __first)` elements in the range
> * `[__first, __last)` and moves them to the range `[__first,
> __middle)`.
> @@ -4755,7 +4792,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first An iterator.
> * @param __nth Another iterator.
> * @param __last Another iterator.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> *
> * Rearranges the elements in the range `[__first, __last)` so that
> `*__nth`
> * is the same element that would have been in that position had the
> @@ -4822,7 +4859,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @ingroup sorting_algorithms
> * @param __first An iterator.
> * @param __last Another iterator.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> *
> * Sorts the elements in the range `[__first, __last)` in ascending
> order,
> * such that `__comp(*(i+1), *i)` is false for every iterator `i` in
> the
> @@ -4883,14 +4920,15 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __last1 Another iterator.
> * @param __last2 Another iterator.
> * @param __result An iterator pointing to the end of the merged
> range.
> - * @return An output iterator equal to @p __result + (__last1 -
> __first1)
> - * + (__last2 - __first2).
> + * @return An output iterator equal to
> + * `__result + (__last1 - __first1) + (__last2 - __first2)`.
> *
> - * Merges the ranges @p [__first1,__last1) and @p [__first2,__last2)
> into
> - * the sorted range @p [__result, __result + (__last1-__first1) +
> - * (__last2-__first2)). Both input ranges must be sorted, and the
> - * output range must not overlap with either of the input ranges.
> - * The sort is @e stable, that is, for equivalent elements in the
> + * Merges the ranges `[__first1, __last1)` and `[__first2, __last2)`
> into
> + * the sorted range
> + * `[__result, __result + (__last1-__first1) + (__last2-__first2))`.
> + * Both input ranges must be sorted, and the output range must not
> overlap
> + * with either of the input ranges.
> + * The sort is _stable_, that is, for equivalent elements in the
> * two ranges, elements from the first range will always come
> * before elements from the second.
> */
> @@ -4929,15 +4967,16 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __last1 Another iterator.
> * @param __last2 Another iterator.
> * @param __result An iterator pointing to the end of the merged
> range.
> - * @param __comp A functor to use for comparisons.
> - * @return An output iterator equal to @p __result + (__last1 -
> __first1)
> - * + (__last2 - __first2).
> + * @param __comp A function object to use for comparisons.
> + * @return An output iterator equal to
> + * `__result + (__last1 - __first1) + (__last2 - __first2)`.
> *
> - * Merges the ranges @p [__first1,__last1) and @p [__first2,__last2)
> into
> - * the sorted range @p [__result, __result + (__last1-__first1) +
> - * (__last2-__first2)). Both input ranges must be sorted, and the
> - * output range must not overlap with either of the input ranges.
> - * The sort is @e stable, that is, for equivalent elements in the
> + * Merges the ranges `[__first1, __last1)` and `[__first2, __last2)`
> into
> + * the sorted range
> + * `[__result, __result + (__last1-__first1) + (__last2-__first2))`.
> + * Both input ranges must be sorted, and the output range must not
> overlap
> + * with either of the input ranges.
> + * The sort is _stable_, that is, for equivalent elements in the
> * two ranges, elements from the first range will always come
> * before elements from the second.
> *
> @@ -5018,14 +5057,14 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @param __first An iterator.
> * @param __last Another iterator.
> *
> - * Sorts the elements in the range @p [__first,__last) in ascending
> order,
> - * such that for each iterator @p i in the range @p [__first,__last-1),
> - * @p *(i+1)<*i is false.
> + * Sorts the elements in the range `[__first, __last)` in ascending
> order,
> + * such that for each iterator `i` in the range `[__first, __last-1)`,
> + * `*(i+1) < *i` is false.
> *
> * The relative ordering of equivalent elements is preserved, so any
> two
> - * elements @p x and @p y in the range @p [__first,__last) such that
> - * @p x<y is false and @p y<x is false will have the same relative
> - * ordering after calling @p stable_sort().
> + * elements `x` and `y` in the range `[__first, __last)` such that
> + * `x < y` is false and `y < x` is false will have the same relative
> + * ordering after calling `stable_sort`.
> */
> template<typename _RandomAccessIterator>
> _GLIBCXX26_CONSTEXPR
> @@ -5050,16 +5089,16 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> * @ingroup sorting_algorithms
> * @param __first An iterator.
> * @param __last Another iterator.
> - * @param __comp A comparison functor.
> + * @param __comp A comparison function object.
> *
> - * Sorts the elements in the range @p [__first,__last) in ascending
> order,
> - * such that for each iterator @p i in the range @p [__first,__last-1),
> - * @p __comp(*(i+1),*i) is false.
> + * Sorts the elements in the range `[__first, __last)` in ascending
> order,
> + * such that for each iterator `i in the range `[__first,__last-1)`,
> + * `__comp(*(i+1), *i)` is false.
> *
> * The relative ordering of equivalent elements is preserved, so any
> two
> - * elements @p x and @p y in the range @p [__first,__last) such that
> - * @p __comp(x,y) is false and @p __comp(y,x) is false will have the
> same
> - * relative ordering after calling @p stable_sort().
> + * elements `x` and `y` in the range `[__first, __last)` such that
> + * `__comp(x, y)` is false and `__comp(y, x)` is false will have the
> same
> + * relative ordering after calling `stable_sort`.
> */
> template<typename _RandomAccessIterator, typename _Compare>
> _GLIBCXX26_CONSTEXPR
> @@ -5161,22 +5200,22 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> }
>
> /**
> - * @brief Return the union of two sorted ranges using a comparison
> functor.
> + * @brief Return the union of two sorted ranges using a comparison
> function.
> * @ingroup set_algorithms
> * @param __first1 Start of first range.
> * @param __last1 End of first range.
> * @param __first2 Start of second range.
> * @param __last2 End of second range.
> * @param __result Start of output range.
> - * @param __comp The comparison functor.
> + * @param __comp The comparison function object.
> * @return End of the output range.
> * @ingroup set_algorithms
> *
> * This operation iterates over both ranges, copying elements present
> in
> * each range in order to the output range. Iterators increment for
> each
> * range. When the current element of one range is less than the other
> - * according to @p __comp, that element is copied and the iterator
> advanced.
> - * If an equivalent element according to @p __comp is contained in both
> + * according to `__comp`, that element is copied and the iterator
> advanced.
> + * If an equivalent element according to `__comp` is contained in both
> * ranges, the element from the first range is copied and both ranges
> * advance. The output range may not overlap either input range.
> */
> @@ -5282,22 +5321,22 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
>
> /**
> * @brief Return the intersection of two sorted ranges using comparison
> - * functor.
> + * function.
> * @ingroup set_algorithms
> * @param __first1 Start of first range.
> * @param __last1 End of first range.
> * @param __first2 Start of second range.
> * @param __last2 End of second range.
> * @param __result Start of output range.
> - * @param __comp The comparison functor.
> + * @param __comp The comparison function object.
> * @return End of the output range.
> * @ingroup set_algorithms
> *
> * This operation iterates over both ranges, copying elements present
> in
> * both ranges in order to the output range. Iterators increment for
> each
> * range. When the current element of one range is less than the other
> - * according to @p __comp, that iterator advances. If an element is
> - * contained in both ranges according to @p __comp, the element from
> the
> + * according to `__comp`, that iterator advances. If an element is
> + * contained in both ranges according to `__comp`, the element from the
> * first range is copied and both ranges advance. The output range
> may not
> * overlap either input range.
> */
> @@ -5406,24 +5445,24 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
>
> /**
> * @brief Return the difference of two sorted ranges using comparison
> - * functor.
> + * function.
> * @ingroup set_algorithms
> * @param __first1 Start of first range.
> * @param __last1 End of first range.
> * @param __first2 Start of second range.
> * @param __last2 End of second range.
> * @param __result Start of output range.
> - * @param __comp The comparison functor.
> + * @param __comp The comparison function object.
> * @return End of the output range.
> * @ingroup set_algorithms
> *
> * This operation iterates over both ranges, copying elements present
> in
> * the first range but not the second in order to the output range.
> * Iterators increment for each range. When the current element of the
> - * first range is less than the second according to @p __comp, that
> element
> + * first range is less than the second according to `__comp`, that
> element
> * is copied and the iterator advances. If the current element of the
> * second range is less, no element is copied and the iterator
> advances.
> - * If an element is contained in both ranges according to @p __comp, no
> + * If an element is contained in both ranges according to `__comp`, no
> * elements are copied and both ranges advance. The output range may
> not
> * overlap either input range.
> */
> @@ -5541,23 +5580,23 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
>
> /**
> * @brief Return the symmetric difference of two sorted ranges using
> - * comparison functor.
> + * comparison function.
> * @ingroup set_algorithms
> * @param __first1 Start of first range.
> * @param __last1 End of first range.
> * @param __first2 Start of second range.
> * @param __last2 End of second range.
> * @param __result Start of output range.
> - * @param __comp The comparison functor.
> + * @param __comp The comparison function object.
> * @return End of the output range.
> * @ingroup set_algorithms
> *
> * This operation iterates over both ranges, copying elements present
> in
> * one range but not the other in order to the output range. Iterators
> * increment for each range. When the current element of one range is
> less
> - * than the other according to @p comp, that element is copied and the
> + * than the other according to `__comp`, that element is copied and the
> * iterator advances. If an element is contained in both ranges
> according
> - * to @p __comp, no elements are copied and both ranges advance. The
> output
> + * to `__comp`, no elements are copied and both ranges advance. The
> output
> * range may not overlap either input range.
> */
> template<typename _InputIterator1, typename _InputIterator2,
> @@ -5631,13 +5670,13 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> }
>
> /**
> - * @brief Return the minimum element in a range using comparison
> functor.
> + * @brief Return the minimum element in a range using comparison
> function.
> * @ingroup sorting_algorithms
> * @param __first Start of range.
> * @param __last End of range.
> - * @param __comp Comparison functor.
> + * @param __comp Comparison function object.
> * @return Iterator referencing the first instance of the smallest
> value
> - * according to __comp.
> + * according to `__comp`.
> */
> template<typename _ForwardIterator, typename _Compare>
> _GLIBCXX_NODISCARD _GLIBCXX14_CONSTEXPR
> @@ -5694,13 +5733,13 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> }
>
> /**
> - * @brief Return the maximum element in a range using comparison
> functor.
> + * @brief Return the maximum element in a range using comparison
> function.
> * @ingroup sorting_algorithms
> * @param __first Start of range.
> * @param __last End of range.
> - * @param __comp Comparison functor.
> + * @param __comp Comparison function object.
> * @return Iterator referencing the first instance of the largest
> value
> - * according to __comp.
> + * according to `__comp`.
> */
> template<typename _ForwardIterator, typename _Compare>
> _GLIBCXX_NODISCARD _GLIBCXX14_CONSTEXPR
> @@ -5761,6 +5800,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> #endif // C++11
>
> #if __cplusplus >= 201402L // C++17 std::sample and C++14
> experimental::sample
> + /// @cond undocumented
> /// Reservoir sampling algorithm.
> template<typename _InputIterator, typename _RandomAccessIterator,
> typename _Size, typename _UniformRandomBitGenerator>
> @@ -5855,6 +5895,7 @@ _GLIBCXX_BEGIN_NAMESPACE_ALGO
> }
> return __out;
> }
> + /// @endcond
> #endif // C++14
>
> #ifdef __glibcxx_sample // C++ >= 17
> --
> 2.54.0
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://gcc.gnu.org/pipermail/libstdc++/attachments/20260629/9ecbc1b2/attachment-0001.htm>
More information about the Libstdc++
mailing list