Использование Doxygen 1.7.4
Иногда у меня может быть блок открытых функций-членов, которые принадлежат в группе элементов и которые я считаю самодокументируемыми (например, геттеры / сеттеры)так что я не хочу писать синтаксис Doxygen для каждого.Однако мне может понадобиться добавить что-то вроде \note
к одному или двум из них.Кроме того, я do все еще хочу, чтобы объявления функций отображались в списке членов класса в окончательной документации.Следовательно, использование \cond
, \endcond
не будет работать.Я заметил, что если все родительские элементы задокументированы и Doxygen обнаружит недокументированную функцию в группе участников, он будет повторять первую документацию, с которой столкнулся в этой группе, даже если эта документация была для функции с другим именем, как таковая:
/** @name Group1
* @{
*/
void setA( int i );
int getA( void );
/// @note This note unexpectedly repeated for all functions in this group
void setB( int i );
int getB( void );
void setC( int i );
int getC( void );
//@}
Для любого, кто читает код и документацию, должно быть очевидно, что примечание должно относиться только к setB()
.
Эта конкретная проблема исчезнет, если я удалю окружающую группу участников,Однако это противоречит цели документирования того, что эти функции каким-то образом связаны друг с другом, и затем Doxygen жалуется (предупреждает), что функции не документированы.Я попытался добавить пустые специальные блоки комментариев и пустые команды \brief
и \note
, но все безрезультатно.
Я также сталкивался с этим явлением при документировании перегруженных функций в группе участников.Если моя перегруженная функция использует другое количество параметров и разные имена параметров, я документирую эту функцию отдельно.Однако иногда две функции будут отличаться только типом параметра.В этом случае мой обходной путь - использовать команду \overload
.Однако я предпочел бы не делать этого, и этот обходной путь не применяется (семантически) для функций с другим именем.
Итак, есть ли обходной путь для этой проблемы повторения?