From 0a1311ca4f1bea064296541b73a2952c9c87f165 Mon Sep 17 00:00:00 2001 From: R Kent James Date: Tue, 20 Oct 2026 09:45:39 -0700 Subject: [PATCH] Hide noexcept function_traits specializations from Doxygen The noexcept specializations added in #3322 make the rosdoc2 documentation build fail: Sphinx's C++ domain hits an internal AssertionError while resolving references in the function_traits specializations. Wrap the noexcept variants in \cond/\endcond so Doxygen skips them. They mirror the documented non-noexcept specializations, and the compiled code is unchanged. Co-Authored-By: Claude Opus 5.5 Signed-off-by: R Kent James --- rclcpp/include/rclcpp/function_traits.hpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rclcpp/include/rclcpp/function_traits.hpp b/rclcpp/include/rclcpp/function_traits.hpp index cd62da3763..ca176ecc16 100644 --- a/rclcpp/include/rclcpp/function_traits.hpp +++ b/rclcpp/include/rclcpp/function_traits.hpp @@ -78,6 +78,7 @@ template struct function_traits: function_traits {}; +/// \cond // noexcept is part of the function type since C++17, so the noexcept variants need their own // specializations. template @@ -87,6 +88,7 @@ struct function_traits: function_traits struct function_traits: function_traits {}; +/// \endcond // std::bind for object methods template @@ -126,6 +128,7 @@ struct function_traits< : function_traits {}; +/// \cond // std::bind for object noexcept methods template #if defined DOXYGEN_ONLY @@ -145,7 +148,9 @@ struct function_traits< #endif : function_traits {}; +/// \endcond +/// \cond // std::bind for object const noexcept methods template #if defined DOXYGEN_ONLY @@ -165,6 +170,7 @@ struct function_traits< #endif : function_traits {}; +/// \endcond // std::bind for free functions template @@ -182,6 +188,7 @@ struct function_traits {}; +/// \cond // std::bind for noexcept free functions template #if defined DOXYGEN_ONLY @@ -198,6 +205,7 @@ struct function_traits< #endif : function_traits {}; +/// \endcond // Lambdas template @@ -205,10 +213,12 @@ struct function_traits : function_traits {}; +/// \cond template struct function_traits : function_traits {}; +/// \endcond template struct function_traits: function_traits