У меня есть 4 группы, от G1 до G4, документированные в Doxygen следующим образом.
/**
@defgroup G1 Group 1
@brief A brief description of group 1.
*/
/**
@defgroup G2 Group 2
@brief A brief description of group 2.
*/
/**
@defgroup G3 Group 3
@brief A brief description of group 3.
*/
/**
@defgroup G4 Group 4
@brief A brief description of group 4.
*/
Я хочу, чтобы они были сгруппированы тремя различными способами: 1) все, 2) группа нечетных и 3) группа четных. Для этого я сделал следующее.
/**
@defgroup all_groups All groups
@{
@defgroup G1
@defgroup G2
@defgroup G3
@defgroup G4
@}
*/
/**
@defgroup odd_groups Odd groups
@{
@defgroup G1
@defgroup G3
@}
*/
/**
@defgroup even_groups Even groups
@{
@defgroup G2
@defgroup G4
@}
*/
Работает с doxygen-1.8.13. Однако это незаконно. Потому что согласно документации Doxygen, defgroup
следует использовать только один раз на группу.
Правильная реализация должна быть
/**
@defgroup G1 Group 1
@ingroup all_groups odd_groups
@brief A brief description of group 1.
*/
/**
@defgroup G2 Group 2
@ingroup all_groups even_groups
@brief A brief description of group 2.
*/
...
/**
@defgroup all_groups All groups
@defgroup odd_groups Odd groups
@defgroup even_groups Even groups
*/
или
/**
@defgroup all_groups All groups
@addtogroup G1
@ingroup all_groups
@addtogroup G2
@ingroup all_groups
@addtogroup G3
@ingroup all_groups
@addtogroup G4
@ingroup all_groups
*/
/**
@defgroup odd_groups Odd groups
@addtogroup G1
@ingroup odd_groups
@addtogroup G3
@ingroup odd_groups
*/
/**
@defgroup even_groups Even groups
@addtogroup G2
@ingroup even_groups
@addtogroup G4
@ingroup even_groups
*/
Однако читаемость исчезает. В любом случае документацию нелегко читать и поддерживать. Я искал в сети возможный обходной путь, но тщетно. Мне не хватает какого-то элегантного решения?
Я бы предпочел что-то вроде @addgroup
для достижения этой цели.
/**
@defgroup all_groups All groups
@{
@addgroup G1
@addgroup G2
@addgroup G3
@addgroup G4
@}
*/
/**
@defgroup odd_groups Odd groups
@{
@addgroup G1
@addgroup G3
@}
*/
/**
@defgroup even_groups Even groups
@{
@addgroup G2
@addgroup G4
@}
*/