如何在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
相关产品推荐
相关产品推荐

