You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Doxygen中替换函数签名的返回类型为自定义内容?

实现方法

可行,有两种常用方式可以实现需求:

方法一:使用@fn手动定义显示的函数签名

在函数的Doxygen注释中,用@fn命令直接指定想要显示的函数签名,内嵌HTML标签实现斜体效果,同时保留语法高亮:

/**
 * @brief 模板函数frobozzle的说明
 * @fn template <class T> auto frobozzle(T t) -> <em><code>unspecified</code></em>
 * @tparam T 模板参数类型
 * @param t 传入的函数参数
 * @return 未指定类型的返回值
 */
template <class T>
auto frobozzle(T t) -> typename detail::ugly_metafunction<T>::type;

Doxygen生成文档时,会优先使用@fn中定义的签名,<em>标签会将unspecified转为斜体,<code>标签保证其保留代码样式,同时模板部分会维持C++语法高亮。

方法二:用\cond隐藏原始代码,手动编写显示代码块

通过\cond和\endcond包裹原始函数,让Doxygen跳过解析,再在注释中用@code{.cpp}编写自定义的代码块:

/**
 * @brief 模板函数frobozzle的说明
 * @tparam T 模板参数类型
 * @param t 传入的函数参数
 * @return 未指定类型的返回值
 *
 * @code{.cpp}
 * template <class T>
 * auto frobozzle(T t) -> <em>unspecified</em>;
 * @endcode
 */
\cond
template <class T>
auto frobozzle(T t) -> typename detail::ugly_metafunction<T>::type;
\endcond

这种方式下,自定义的代码块会被Doxygen应用C++语法高亮,<em>标签同样能让unspecified显示为斜体。

注意事项

  • 确保Doxygen配置中ENABLE_PREPROCESSING选项处于开启状态(默认开启),否则\cond和\endcond无法生效。
  • Doxygen默认支持在代码块中内嵌HTML标签,无需额外配置即可解析<em>和<code>。

内容的提问来源于stack exchange,提问作者Eric Niebler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:25:17