Подтвердить что ты не робот

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

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

Пример:

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

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

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

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

4b9b3361

Ответ 1

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

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

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

Я использую Doxygen для документов С# для Realm (да Doxygen также обрабатывает типичный формат комментариев в формате С#!). На главной странице 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)

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

Ответ 2

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

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

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

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

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

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