Может ли Doxygen включить функцию в группу участников, но не задокументировать ее? - PullRequest
2 голосов
/ 18 октября 2011

Использование 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.Однако я предпочел бы не делать этого, и этот обходной путь не применяется (семантически) для функций с другим именем.

Итак, есть ли обходной путь для этой проблемы повторения?

1 Ответ

4 голосов
/ 25 октября 2011

Да.Doxygen предоставляет опцию DISTRIBUTE_GROUP_DOC в Doxyfile.По умолчанию он установлен на YES, но его изменение на NO решает эту проблему.

...