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

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


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

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

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

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

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


вы можете использовать псевдоним такой:

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

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

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

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

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