【问题标题】:How can I configure Doxygen to include typedefs of classes in the "Class Index"?如何配置 Doxygen 以在“类索引”中包含类的 typedef?
【发布时间】:2018-07-04 14:41:12
【问题描述】:

如何配置 Doxygen 以在“类索引”网页中包含类的 typedef?例如,如果代码有

typedef std::map<std::string /* month name */, std::string /* yield */> MonthlyYieldMap;

某处,然后MonthlyYieldMap 就像一个类,因此将它包含在类索引中似乎是合理的,就像引用类的其他名称一样。

如果我正在检查其他人的代码并看到类似于类但我不熟悉的东西的名称,那么我会拉出类索引来查找类的详细信息,但如果名称是typedef 则不显示。

我仍然可以通过Class Index网页的Doxygen搜索栏找到关于这个神秘名字的信息,但如果在Class Index中提到它会更方便。

我查看了配置文件,发现有两个提到 typedef(INLINE_SIMPLE_STRUCTS 和 TYPEDEF_HIDE_STRUCT),但它们没有解决我的问题。

于 2018 年 7 月 5 日添加:

如果我可以编辑代码,那么我可以将 typedef 更改为继承另一个类的类:

class MonthlyYieldMap : public std::map<std::string, std::string> { }

然后它被包含在类索引中。我不知道这样做是否会降低性能或可执行文件大小。如果我无法编辑代码,这也无济于事。

【问题讨论】:

    标签: c++ doxygen


    【解决方案1】:

    typedef 不是class,这是无法预见的。 一个不太好的解决方案,因为它没有提到 MonthlyYieldMap 是 typedef 而是说它是一个函数(我不知道在你的情况下这是多么可接受)是:

    /**
      * @class MonthlyYieldMap
      */
    /**
      * some documentation
      * \relates MonthlyYieldMap
      */
    typedef std::map<std::string /* month name */, std::string /* yield */> MonthlyYieldMap;
    

    【讨论】:

      猜你喜欢
      • 2014-03-13
      • 1970-01-01
      • 2015-12-16
      • 2012-08-04
      • 2011-06-03
      • 2018-01-12
      • 1970-01-01
      • 2012-01-31
      • 2011-12-17
      相关资源
      最近更新 更多