Как связать функции, не являющиеся членами, с классом в Doxygen?

Я уверен, что есть какой-то способ сделать это с помощью тегов \defgroup, \addgroup и \@{ \@}, но после пары часов проб и (очевидно) ошибок я прошу ТАК.....

У меня есть:

class C {
public:
    void foo () const;
};

и у меня есть некоторые вспомогательные функции, не являющиеся членами, которые действительно являются частью интерфейса C, но не входят в класс:

std::string
format (const C& c, const std::string &fmt);

Я бы хотел, чтобы функция формата отображалась на той же странице, что и функции класса. Это просто невозможно? Лучшее, что я могу сделать, это страница «модуля», в которой C указан как класс (с гиперссылкой на комментарии C и форматируется как функция?


person Eric H.    schedule 02.11.2009    source источник


Ответы (2)


\relates (или \memberof) кажется тем, что вы ищете.

person Éric Malenfant    schedule 02.11.2009
comment
Эм... да... теперь я чувствую себя идиотом из-за того, что пропустил это. Думаю, мне нужно перечитать раздел «Специальные команды» документации. Я не помню, чтобы \relates использовался в примере. - person Eric H.; 02.11.2009

Создание группы и назначение функций вне вашего класса в этой группе будет работать, но в самой документации класса вы не получите ссылок на свои функции, если не используете такие команды, как @see или @sa. Честно говоря, то, что функция принимает задокументированный параметр, не означает, что эта функция автоматически становится частью библиотеки, но вы можете связать классы и функции вместе, используя @defgroup и @addgroup.

person Percutio    schedule 02.11.2009
comment
Если функция находится в том же заголовочном файле, что и определение класса, есть большая вероятность, что она должна фигурировать вместе с классом в документации. См. определение «общедоступного интерфейса», данное Хербом Саттером. - person Matthieu M.; 02.11.2009
comment
Как говорит Матье... это часть интерфейса. Вот почему я хотел знать, есть ли способ заставить их отображаться на одной странице. - person Eric H.; 02.11.2009