使用doxygen记录枚举类值

时间:2014-08-14 07:34:25

标签: c++ doxygen

在我的项目中我经常使用枚举类,并且我使用doxygen作为文档系统。 当在同一个文件中声明多个枚举类并且它们具有相同的成员时,我发现很难生成枚举类的文档。 例如,以下代码未在最终HTML输出中为枚举类IMAGE_REPORTING生成正确的文档:

namespace mapper
{
  /* CONNECTION RELATED */
  /** @enum mapper::SECURE_WEBSOCKET
   *  \author Michele Adduci
   *  \ingroup Core
   *  @brief is a strongly typed enum class representing the status of websocket connection
   *  @var mapper::SECURE_WEBSOCKET::DISABLED
   *  is coded as std::int8_t of value 0
   *  @var mapper::SECURE_WEBSOCKET::ENABLED
   *  is coded as std::int8_t of value 1
   */
  enum class SECURE_WEBSOCKET : std::int8_t {DISABLED = 0, ENABLED = 1};

  /* IMAGE RELATED */
  /** @enum mapper::IMAGE_REPORTING
   *  \author Michele Adduci
   *  \ingroup Core
   *  @brief is a strongly typed enum class representing the status of image reporting
   *  @var mapper::IMAGE_REPORTING::DISABLED
   *  is coded as std::int8_t of value 0
   *  @var mapper::IMAGE_REPORTING::ENABLED
   *  is coded as std::int8_t of value 1
 */
  enum class IMAGE_REPORTING : std::int8_t {DISABLED = 0, ENABLED = 1};
}

输出: Doxygen output

知道问题是什么?

2 个答案:

答案 0 :(得分:6)

您可以使用适用于我的内联文档:

/** @enum mapper::IMAGE_REPORTING
 *  \author Michele Adduci
 *  \ingroup Core
 *  @brief is a strongly typed enum class representing the status of image reporting
 */
enum class IMAGE_REPORTING : std::int8_t {
  DISABLED = 0, /**< is coded as std::int8_t of value 0 */
  ENABLED = 1   /**< is coded as std::int8_t of value 1 */
}

和另一个相似。

答案 1 :(得分:1)

我遇到了与全局枚举类似的问题。一些头文件生成了枚举的链接,而其他头文件则没有。您必须明确记录该文件。

以下是文档中此页面的摘录。 http://www.doxygen.nl/manual/docblocks.html#memberdoc

  

记录全局C函数,typedef,enum或预处理器   定义您必须首先记录包含它的文件(通常是   这将是一个头文件,因为该文件包含信息   导出到其他源文件)。

     

注意       让我们重复一遍,因为它经常被忽视:要记录全局对象(函数,typedef,枚举,宏等),你必须   记录定义它们的文件。换句话说,那里   必须至少是一个

/*! \file */ 

or a

/** @file */ 

line in this file.