【问题标题】:Doxygen (1.8.8) putting C++ constructors / public member functions on group page rather than class pageDoxygen (1.8.8) 将 C++ 构造函数/公共成员函数放在组页面而不是类页面上
【发布时间】:2016-02-05 09:31:24
【问题描述】:

我正在尝试使用 Doxygen 记录我的一些代码。我有一个库,我称之为 Doxygen 组,以及单独的头文件中的许多类。许多构造函数在类页面上显示为公共成员函数,但它们的文档显示在组页面上,而不是在类页面的 Constructors && Destructors 部分中。有些不是;我还没有完全弄清楚模式。

这是失败的:

/**
 * @addtogroup gr_espresso
 * @{
 */

/**
 * @file ToyTagger.hh
 */
...
namespace Espresso {
  ...
  /**
   * @class ToyTagger
   * @brief Fake tagging algorithm
   * @details ...
   *
   */
  class ToyTagger {
  public:

    /**
     * @brief Simple constructor.
     * @details ...
     */
    ToyTagger(CalibrationMode _mode, const Distribution& _pdf, const Calibration* _smear_cal = nullptr);
    ...
  }
}
/**
 * @}
 */

为 ToyTagger 类生成以下文档:

上面以伪代码显示的构造函数列在公共成员函数下,但不在构造函数和析构函数文档下。相反,“更多信息”链接指向组 gr_espresso 的页面。对于另一个构造函数也是如此,对于三个成员函数之一也是如此:

我没有展示第二个构造函数或三个成员函数的代码,但是没有明显的区别。

另一方面,这是成功的:

/**
 * @addtogroup gr_espresso
 * @{
 */

/**
 * @file StandardCalibration.hh
 */
...
namespace Espresso
{
  ...
  class StandardCalibration : public Calibration {
  public:
   /**
    * @brief Default constructor
    * @details Simple constructor that creates a trivial calibration
    * where \f$\omega(\eta) = \eta\f$
    */
    StandardCalibration();
    ...
  }
}

/**
 * @}
 */

这会生成我期望的文档:

有人知道这里发生了什么吗?我是否做错了什么导致这种(显然)不可预测的行为?

【问题讨论】:

  • 我看到的一个区别是,您在第二个示例中使用了默认构造函数,而在第一个示例中使用了专用构造函数。
  • @gmug 这是一个很好的观察。我将查看库中的其他构造函数,看看它们是否遵循相同的模式。这无法解释为什么返回 void 的两个成员函数记录在此页面上,而不是第一个,但也许这是一个单独的问题。
  • 盲射:你的构造函数是public:之后的第一个成员吗?
  • 鉴于你的电子邮件地址,我敢打赌你不能分享整个项目,你能提供一个minimal reproducible example吗?
  • 在ToyTagger.hh 上运行 Doxygen 1.8.7(配置了 Doxywizard 默认设置,除了禁用 LaTeX 和图表)对我来说产生了正确的结果。构造函数在顶部的概述中列为“公共函数”,但在“构造函数和析构函数”下可了解详细信息。 “更多...”链接跳转到正确的位置,而不是组页面。你也可以在单个文件上运行 doxygen 吗?也许 ToyTagger.hh 中包含的任何文件都有一些损坏的 doxygen 代码? doxygen 生成过程中是否有任何警告?

标签: c++ doxygen


【解决方案1】:

您应该尝试生成MCVE 来跟踪问题。

另外,请尝试检查您添加到哪个组的文件:有时可能会导致奇怪的行为...

【讨论】:

    猜你喜欢
    • 2012-04-12
    • 1970-01-01
    • 2016-07-31
    • 2015-08-13
    • 1970-01-01
    • 2015-08-18
    • 2014-08-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多