[gcc r16-8418] libstdc++: Fix errors in Doxygen markup
Jonathan Wakely
redi@gcc.gnu.org
Thu Apr 2 13:26:02 GMT 2026
https://gcc.gnu.org/g:9b3957cd5958955ffae2a5cc7ad3b37e110e8d8f
commit r16-8418-g9b3957cd5958955ffae2a5cc7ad3b37e110e8d8f
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Tue Mar 31 16:00:41 2026 +0100
libstdc++: Fix errors in Doxygen markup
libstdc++-v3/ChangeLog:
* doc/doxygen/doxygroups.cc: Define variable_templates group.
* include/bits/binders.h: Fix @file name.
* include/bits/formatfwd.h: Add missing @cond
* include/bits/forward_list.h: Add closing backtick in comment.
* include/bits/out_ptr.h (out_ptr, inout_ptr): Fix names in
@param comments.
* include/bits/regex_constants.h: Escape backtick in comment.
* include/bits/stl_map.h: Add missing @{.
* include/bits/stl_set.h: Likewise.
* include/bits/stl_pair.h: Move declaration of complex into #if
group where it's used. Fix nesting of @cond and @endcond in #if
groups.
* include/std/functional: Move @cond inside #if group.
* include/std/type_traits: Likewise.
* libsupc++/exception: Fix typo'd backtick.
Reviewed-by: Tomasz Kamiński <tkaminsk@redhat.com>
Diff:
---
libstdc++-v3/doc/doxygen/doxygroups.cc | 15 +++++++++++++++
libstdc++-v3/include/bits/binders.h | 2 +-
libstdc++-v3/include/bits/formatfwd.h | 1 +
libstdc++-v3/include/bits/forward_list.h | 2 +-
libstdc++-v3/include/bits/out_ptr.h | 4 ++--
libstdc++-v3/include/bits/regex_constants.h | 4 ++--
libstdc++-v3/include/bits/stl_map.h | 1 +
libstdc++-v3/include/bits/stl_pair.h | 9 ++++++---
libstdc++-v3/include/bits/stl_set.h | 1 +
libstdc++-v3/include/std/functional | 2 +-
libstdc++-v3/include/std/type_traits | 8 ++++----
libstdc++-v3/libsupc++/exception | 4 ++--
12 files changed, 37 insertions(+), 16 deletions(-)
diff --git a/libstdc++-v3/doc/doxygen/doxygroups.cc b/libstdc++-v3/doc/doxygen/doxygroups.cc
index 27d4a5e20ba9..00d945ceba00 100644
--- a/libstdc++-v3/doc/doxygen/doxygroups.cc
+++ b/libstdc++-v3/doc/doxygen/doxygroups.cc
@@ -164,6 +164,21 @@ summarized in <a href="tables.html">tables</a>. */
* and condition variables.
*/
+/**
+ * @defgroup variable_templates Variable Templates
+ * @ingroup metaprogramming
+ * @since C++17
+ *
+ * Each trait in `<type_traits>` that has a `value` static data member is
+ * also available as a variable template, using the same name with a `_v`
+ * suffix. For example, `std::is_integral_v<T>` is a `bool` constant with
+ * the same value as `std::is_integral<T>::value`.
+ *
+ * In some cases, using the variable template instead of the `::value` member
+ * avoids instantiating the class template for the trait. This gives the
+ * compiler less work to do and can make your code compile a little faster.
+ */
+
/**
* @defgroup experimental Technical Specifications
*
diff --git a/libstdc++-v3/include/bits/binders.h b/libstdc++-v3/include/bits/binders.h
index 972471745bd4..51dba4cb446d 100644
--- a/libstdc++-v3/include/bits/binders.h
+++ b/libstdc++-v3/include/bits/binders.h
@@ -23,7 +23,7 @@
// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
// <http://www.gnu.org/licenses/>.
-/** @file include/bits/binder.h
+/** @file include/bits/binders.h
* This is an internal header file, included by other library headers.
* Do not attempt to use it directly. @headername{functional}
*/
diff --git a/libstdc++-v3/include/bits/formatfwd.h b/libstdc++-v3/include/bits/formatfwd.h
index d2dfb17492d1..d28ca70b7d80 100644
--- a/libstdc++-v3/include/bits/formatfwd.h
+++ b/libstdc++-v3/include/bits/formatfwd.h
@@ -56,6 +56,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
// [format.formatter], formatter
template<typename _Tp, typename _CharT = char> struct formatter;
+/// @cond undocumented
namespace __format
{
#ifdef _GLIBCXX_USE_WCHAR_T
diff --git a/libstdc++-v3/include/bits/forward_list.h b/libstdc++-v3/include/bits/forward_list.h
index 025486646f3c..7b333b3b0b6e 100644
--- a/libstdc++-v3/include/bits/forward_list.h
+++ b/libstdc++-v3/include/bits/forward_list.h
@@ -1461,7 +1461,7 @@ namespace __fwdlist
*
* This function will insert copies of the data in the range
* `[ __first, __last)` into the %forward_list after the
- * location specified by `__pos.
+ * location specified by `__pos`.
*
* This operation is linear in the number of elements inserted and
* does not invalidate iterators and references.
diff --git a/libstdc++-v3/include/bits/out_ptr.h b/libstdc++-v3/include/bits/out_ptr.h
index 48fe3475b2f7..cc5a8a3adacb 100644
--- a/libstdc++-v3/include/bits/out_ptr.h
+++ b/libstdc++-v3/include/bits/out_ptr.h
@@ -396,7 +396,7 @@ namespace __detail
/**
* @tparam _Pointer The type of pointer to convert to.
* @param __s The pointer that should take ownership of the result.
- * @param __args... Arguments to use when resetting the smart pointer.
+ * @param __args Pack of arguments to use when resetting the smart pointer.
* @return A `std::out_ptr_t` referring to `__s`.
* @since C++23
* @headerfile <memory>
@@ -417,7 +417,7 @@ namespace __detail
/**
* @tparam _Pointer The type of pointer to convert to.
* @param __s The pointer that should take ownership of the result.
- * @param __args... Arguments to use when resetting the smart pointer.
+ * @param __args Pack of arguments to use when resetting the smart pointer.
* @return A `std::inout_ptr_t` referring to `__s`.
* @since C++23
* @headerfile <memory>
diff --git a/libstdc++-v3/include/bits/regex_constants.h b/libstdc++-v3/include/bits/regex_constants.h
index 32b9de1000b2..e18f162196e3 100644
--- a/libstdc++-v3/include/bits/regex_constants.h
+++ b/libstdc++-v3/include/bits/regex_constants.h
@@ -335,9 +335,9 @@ namespace regex_constants
* Format strings (from ECMA-262 [15.5.4.11]):
* @li $$ The dollar-sign itself ($)
* @li $& The matched substring.
- * @li $` The portion of @a string that precedes the matched substring.
+ * @li $\` The portion of the string that precedes the matched substring.
* This would be match_results::prefix().
- * @li $' The portion of @a string that follows the matched substring.
+ * @li $' The portion of the string that follows the matched substring.
* This would be match_results::suffix().
* @li $n The nth capture, where n is in [1,9] and $n is not followed by a
* decimal digit. If n <= match_results::size() and the nth capture
diff --git a/libstdc++-v3/include/bits/stl_map.h b/libstdc++-v3/include/bits/stl_map.h
index 1e119a95b5cd..88a8faab9244 100644
--- a/libstdc++-v3/include/bits/stl_map.h
+++ b/libstdc++-v3/include/bits/stl_map.h
@@ -1096,6 +1096,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
* is assigned from __obj.
*
* Insertion requires logarithmic time.
+ * @{
*/
template <typename _Obj>
pair<iterator, bool>
diff --git a/libstdc++-v3/include/bits/stl_pair.h b/libstdc++-v3/include/bits/stl_pair.h
index efe6f72569ba..aa49f87fc137 100644
--- a/libstdc++-v3/include/bits/stl_pair.h
+++ b/libstdc++-v3/include/bits/stl_pair.h
@@ -101,9 +101,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
template<size_t...>
struct _Index_tuple;
- template<typename _Tp>
- class complex;
-
template<size_t _Int, class _Tp1, class _Tp2>
constexpr typename tuple_element<_Int, pair<_Tp1, _Tp2>>::type&
get(pair<_Tp1, _Tp2>& __in) noexcept;
@@ -153,6 +150,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
get(const array<_Tp, _Nm>&&) noexcept;
#if __glibcxx_tuple_like >= 202311 // >= C++26
+ template<typename _Tp>
+ class complex;
+
template<size_t _Int, typename _Tp>
constexpr _Tp&
get(complex<_Tp>&) noexcept;
@@ -233,8 +233,11 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
};
#endif // lib concepts
+ /// @endcond
#endif // C++11
+ /// @cond undocumented
+
#if __glibcxx_tuple_like // >= C++23
template<typename _Tp>
inline constexpr bool __is_tuple_v = false;
diff --git a/libstdc++-v3/include/bits/stl_set.h b/libstdc++-v3/include/bits/stl_set.h
index 14825cc05acb..ce35e28cde78 100644
--- a/libstdc++-v3/include/bits/stl_set.h
+++ b/libstdc++-v3/include/bits/stl_set.h
@@ -585,6 +585,7 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER
* to the first is returned.
*
* Insertion requires logarithmic time (if the hint is not taken).
+ * @{
*/
iterator
insert(const_iterator __position, const value_type& __x)
diff --git a/libstdc++-v3/include/std/functional b/libstdc++-v3/include/std/functional
index 314c0f6ac4a4..91478d3e9fbe 100644
--- a/libstdc++-v3/include/std/functional
+++ b/libstdc++-v3/include/std/functional
@@ -148,9 +148,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
}
#endif // __cpp_lib_invoke_r
+#if __cplusplus >= 201103L
/// @cond undocumented
-#if __cplusplus >= 201103L
template<typename _MemFunPtr,
bool __is_mem_fn = is_member_function_pointer<_MemFunPtr>::value>
class _Mem_fn_base
diff --git a/libstdc++-v3/include/std/type_traits b/libstdc++-v3/include/std/type_traits
index a7f881fe9736..bba7a3fd03d2 100644
--- a/libstdc++-v3/include/std/type_traits
+++ b/libstdc++-v3/include/std/type_traits
@@ -2484,15 +2484,15 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
const size_t aligned_union<_Len, _Types...>::alignment_value;
#pragma GCC diagnostic pop
- /// @cond undocumented
-
+ // Decay trait for arrays and functions, used for perfect forwarding
+ // in make_pair, make_tuple, etc.
#if _GLIBCXX_USE_BUILTIN_TRAIT(__decay)
template<typename _Tp>
struct decay
{ using type = __decay(_Tp); };
#else
- // Decay trait for arrays and functions, used for perfect forwarding
- // in make_pair, make_tuple, etc.
+ /// @cond undocumented
+
template<typename _Up>
struct __decay_selector
: __conditional_t<is_const<const _Up>::value, // false for functions
diff --git a/libstdc++-v3/libsupc++/exception b/libstdc++-v3/libsupc++/exception
index 0ae01be25dd5..ab3e06da9f79 100644
--- a/libstdc++-v3/libsupc++/exception
+++ b/libstdc++-v3/libsupc++/exception
@@ -134,8 +134,8 @@ namespace std _GLIBCXX_VISIBILITY(default)
* stack unwinding [15.2]. end note]'
*
* 2: 'When `uncaught_exception()` is true, throwing an
- * %exception can result in a call of 1terminate()`
- * (15.5.1).'
+ * %exception can result in a call of `terminate()`
+ * (15.5.1).
*/
_GLIBCXX17_DEPRECATED_SUGGEST("std::uncaught_exceptions()")
bool uncaught_exception() _GLIBCXX_USE_NOEXCEPT __attribute__ ((__pure__));
More information about the Libstdc++-cvs
mailing list