Документирование пространств имен с Doxygen

У меня есть проблемы с Doxygen, распознающим пространства имен и модули. Я полагаю, что проблема окружает, поместить ли \addtogroup в пространстве имен или вне пространства имен.

Пример 1, вне пространства имен:

/*!
 *  \addtogroup Records
 *  @{
 */

//! Generic record interfaces and implementations
namespace Records
{

  //! Describes the record interface  
  class Interface;

} // End namespace Records

/*! @} End of Doxygen Groups*/

Пример 2 - в пространстве имен

//! Generic record interfaces and implementations
namespace Records
{
/*!
 *  \addtogroup Records
 *  @{
 */


  //! Describes the record interface  
  class Interface;

/*! @} End of Doxygen Groups*/

} // End namespace Records

Я хотел бы namespace Records появиться под вкладкой Doxygen Namespaces и косвенно под вкладкой Modules. Нажатие на объект на странице Namespaces должно произвести страницу, содержащую Records::Interface. Нажатие на объект на вкладке Modules должно также произвести страницу, содержащую Records::Interface.

В моей документации Doxygen у меня есть объекты, отсутствующие во вкладке Namespaces, которые находятся в Модулях и наоборот, из-за моего несоответствия, следующего из этой дилеммы.

Таким образом, который является правильным методом, Пример 1 или Пример 2? {Руководство Doxygen не является четким по этой теме.}
Doxygen: \addtogroup
Doxygen: документирование пространств имен

26
задан albert 26 March 2019 в 11:58
поделиться

1 ответ

Я провел эксперимент с Doxygen и двумя примерами, и вот результаты. Имена классов в примерах были переименованы на избегайте путаницы с Doxygen.

Пример 1, вне пространства имен

/*!
 *  \addtogroup Records
 *  @{
 */

//! Generic record interfaces and implementations
namespace Records
{

  //! Describes the record interface  
  class Interface;

} // End namespace Records

/*! @} End of Doxygen Groups*/

Результаты Doxygen:

Нажмите кнопку «Модули» (на главной панели).
Щелкните модуль «Записи» в окне.

Records & Namespaces screen snapshot

Пример 2: В пространстве имен (класс переименован в Fields)

//! Generic record interfaces and implementations
namespace Fields
{
/*!
 *  \addtogroup Fields
 *  @{
 */


  //! Describes the record interface  
  class Interface;

/*! @} End of Doxygen Groups*/

} // End namespace Fields

Результаты Doxygen:

Нажмите кнопку «Модули» (на главной панели).
Щелкните модуль «Записи» в окне.

Records & Namespaces screen snapshot within namespace

Сводка

Местоположение команды Doxygen \ addtogroup дает разные результаты в зависимости от того, находится ли она в определении пространства имен или за его пределами.При объявлении вне пространства имен на вкладке Doxygen Modules будет показано пространство имен, как показано в Примере 1 выше. Когда команда \ addtogroup помещается внутри пространства имен, вкладка Doxygen Модули не будет отображать пространства имен, как показано в Примере 2 выше. Если вы хотите, чтобы ваше пространство имен отображалось на вкладке Doxygen Modules , найдите команду \ addtogroup за пределами пространства имен.

31
ответ дан 28 November 2019 в 07:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: