Doxygen(1.8.8)将C ++构造函数/公共成员函数放在组页面而不是类页面上

时间:2015-11-04 18:35:08

标签: c++ doxygen

我试图用Doxygen记录我的一些代码。我有一个我称之为Doxygen组的库,以及单独的头文件中的许多类。许多构造函数在类页面上显示为公共成员函数,但它们的文档显示在组页面上而不是构造函数&&和类页面上的析构函数部分。有些不是;我还没有确切地想出这个模式。

这是失败的:

/**
 * @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类生成以下文档:

enter image description here

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

enter image description here

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

另一方面,这是一个成功的:

/**
 * @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();
    ...
  }
}

/**
 * @}
 */

这会生成我期望的文档:

enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

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