typedef в классе шаблонов с Doxygen (c++)
мой вопрос связан с тем, как прокомментировать typedef в классе шаблонов с Doxygen. Приведу пример, иллюстрирующий мой вопрос:--2-->
namespace fundamental
{
/**
* Basic function
*/
template <typename T>
class Base
{
public:
T x; ///< x coordinate
T y; ///< y coordinate
};
typedef Base<float> Coordinate; ///< Point coordinate class
}
после использования Doxygen для обработки вышеуказанных кодов я могу получить HTML-страницу, чтобы показать определение базы классов. Однако для координаты класса typedef она не будет отображаться на одной странице с базой. Фактически все типы typedef перечислены на странице фундаментальное пространство имен вместе со всеми классами в этом пространстве имен. Я было интересно, можно ли показать класс координат на базовой HTML-странице. Таким образом, связь между базой и координатой станет намного ближе. Спасибо!
6 ответов
typedef является частью пространства имен, поэтому вы должны документировать пространство имен для его появления, т. е.:
/// documentation for the namespace
namespace fundamental
{
...
typedef Base<float> Coordinate; ///< Point coordinate class
}
в качестве альтернативы вы можете использовать @relates
но это поставит члена под Соответствующие Функции базового класса:
/// @relates Base
/// Point coordinate class
typedef Base<float> Coordinate;
вы можете изменить это название, например Членами путем создания файла макета с помощью doxygen -l
а затем редактирование двух вхождений related
элемент созданный DoxygenLayout.xml
следующим образом:
<related title="Related Members"/>
в руководстве Я прочитал следующее:
давайте повторим это, потому что это часто упускается из виду: чтобы документировать глобальные объекты (функции, typedefs, перечисление, макросы и т. д.), Вы должны документировать файл, в котором они определены. Другими словами, должен быть хотя бы
/*! \file */
или a
/** @file */
строки в этом файле.
есть см. также ( @sa) команда, полезная для создания перекрестных ссылок на другие объекты.
вы также можете использовать /sa
команда чтобы вручную разместить ссылку в Base
пажа.
namespace fundamental
{
/**
* Basic function
* /sa Coordinate
*/
template <typename T>
class Base
{
public:
T x; ///< x coordinate
T y; ///< y coordinate
};
typedef Base<float> Coordinate; ///< Point coordinate class
}
другие ответы будут работать, но если ваш typedef
так тесно связан с Base
класс, который вы хотите, чтобы они появились на той же странице Doxygen, вы можете рассмотреть вопрос об определении нового namespace
(между Fundamental
), который будет просто включать Base
и свой typedef.
затем doxygen создаст страницу для этого namespace
что будет входить Base
и свой typedef.
определение file
документация будет делать то же самое, но это может быть более логичным верстка код.
есть два варианта решения этой проблемы. Вы можете определить группы с помощью ключевого слова @defgroup и сгруппировать класс и тип typedef в один модуль. Другое решение использует @relates