"использование пространства имен" для комментариев 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"
каждый раз?
Ответы
Ответ 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 ...
*/