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

如何在Doxygen中对模板特化的成员函数进行分组

解决方案

要在保留全局不排序配置的前提下,让foo的模板版本和特化版本分组展示,同时print函数排在最后,可以通过Doxygen的分组标签实现,具体步骤如下:

步骤1:在类声明中为模板foo函数创建命名组

修改类A的源码,用@name给模板foo指定一个唯一分组标识,并用@{和@}包裹该函数:

/**
* Example class
*/
template<typename T>
class A
{
    public:
        /**
        * @name A_foo_overloads
        * @{
        */
        /**
        * Member function 1
        */
        T foo(T a);
        /** @} */

        /**
        * Member function 2
        */
        void print();
};

这里的A_foo_overloads是自定义的分组标识,只要确保和后续特化函数的分组引用一致即可。

步骤2:在外部特化的foo函数中关联该分组

在特化foo的注释中,添加@relates明确归属类A,再用@ingroup关联之前创建的分组:

/**
* Template specialization of member function foo
* @relates A
* @ingroup A_foo_overloads
*/
template<>
double A<double>::foo(double a)
{
    return a;
}

效果说明

这样配置后,Doxygen会自动将同属A_foo_overloads组的两个foo函数放在一起展示(顺序为模板版本在前,特化版本在后),print函数则按照原声明顺序排在最后。全局的SORT_MEMBER_DOCS等不排序配置依然生效,不会影响其他类的文档展示逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 12:42:44