«использование пространства имен» для комментариев Doxygen - PullRequest
14 голосов
/ 23 марта 2010

Все классы моей библиотеки определены в пространстве имен. Когда я создаю главную страницу для Doxygen, я должен явно использовать это пространство имен в комментариях, чтобы Doxygen генерировал ссылки. Я хотел бы использовать что-то вроде «использования пространства имен» для всего блока комментариев.

Пример:

/**
* \mainpage My Library
*
* Use MyLibraryNamespace::MyClass to ...
*/

Здесь Doxygen автоматически генерирует ссылку на документацию MyLibraryNamespace :: MyClass.

/**
* \mainpage My Library
*
* Use MyClass to ...
*/

Здесь Doxygen не генерирует ссылку на документацию MyLibraryNamespace :: MyClass (поскольку в разных пространствах имен может быть несколько определений MyClass). Чтобы облегчить чтение, я бы хотел опустить префикс пространства имен в комментарии. Это возможно без необходимости набирать \ref MyLibraryNamespace::MyClass "MyClass" каждый раз?

Ответы [ 2 ]

14 голосов
/ 08 июля 2010

Вы можете сделать эту работу для одного пространства имен , поместив свой комментарий в пространство имен.Это значительно меня беспокоит, так как у нас есть несколько вложенных пространств имен, и я ненавижу использовать их в комментариях Doxygen.

namespace MyLibraryNamespace {
/**
* \mainpage My Library
*
* Use MyClass to ...
*/
};

2016 Обновление с точки зрения уценки

I'mиспользование Doxygen для документов C # для Realm (да, Doxygen также обрабатывает типичный формат комментариев C # XML!).Главная страница Markdown использует @ref для ссылки на классы пространства имен:

The main classes you will use are:

- [Realm](@ref Realms.Realm)
- [RealmObject](@ref Realms.RealmObject)
- [RealmList](@ref Realms.RealmList)
- [Transaction](@ref Realms.Transaction)

Вы можете увидеть отредактированную версию онлайн здесь

3 голосов
/ 02 мая 2016

Вы можете использовать псевдоним следующим образом:

ALIASES += refmylib{1}="@ref MyLibraryNamespace::\1 \"\1\""

Это пример использования:

/** * \mainpage My Library * * Use @refmylib{MyClass} to ... */

И выше будетобработано doxygen следующим образом:

/** * \mainpage My Library * * Use @ref MyLibraryNamespace::MyClass "MyClass" to ... */

...