Документирование значений класса enum с помощью doxygen
в моем проекте я много использую класс enum, и я использую doxygen в качестве системы документации. Мне очень сложно создать документацию классов перечислений, когда несколько классов перечислений объявлены в одном файле и имеют одни и те же члены. Например, следующий код не генерирует правильную документацию для перечисления класса IMAGE_REPORTING в окончательном выводе HTML:
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};
}
выход:
есть идеи, в чем проблема?
2 ответов
вы можете использовать встроенную документацию, которая работает для меня:
/** @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 */
}
и аналогично для других.
У меня была аналогичная проблема с глобальной перечислений. Некоторые файлы заголовков создали ссылку для перечислений, а другие файлы заголовков-нет. Вы должны явно указать файл.
вот выдержка из этой страницы в документации. http://www.stack.nl / ~Дмитрий / doxygen / руководство / docblocks.html#memberdoc
для документирования глобальной функции C, typedef, перечисления или препроцессора определение сначала необходимо задокументировать файл, который его содержит (обычно это будет файл header, потому что этот файл содержит информацию экспортируется в другие исходные файлы).
внимание Повторим это, потому что это часто упускается из виду: чтобы документировать глобальные объекты (функции, typedefs, перечисление, макросы и т. д.), Вы должны документ-файл, в котором они определены. Другими словами, там должно быть, по крайней мере
/*! \file */ or a /** @file */ line in this file.