использование пространства имен для комментариев Doxygen

Все классы моей библиотеки определены в пространстве имен. Когда я создаю главную страницу для 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"?


person Stephan    schedule 23.03.2010    source источник


Ответы (2)


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

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

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

Я использую 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)

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

person Andy Dent    schedule 08.07.2010

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

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

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

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

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

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

person hotwatermorning    schedule 02.05.2016