Как использовать функцию Do документирования в других местах в специализированном шаблонном классе? - PullRequest
2 голосов
/ 09 апреля 2011

Я столкнулся с очень незначительной проблемой с Doxygen.Но так как я не смог найти ответ через Интернет и мне очень любопытно, я пришел сюда, чтобы попросить вас поделиться своими знаниями.

Когда я работаю над классом, я обычно определяю маленькиечасти по документации в их стандартных местах, но я также использовал для определения больших частей документации, таких как примеры кода или дословно в нижней части заголовочного файла, вместо того, чтобы определять их поверх каждого класса.Те, кто мне нужен, чтобы использовать функцию «Документация в других местах» Doxygen.

Вот рабочий пример:

/** This is my class description */
class MyClass
    {
    ...
};


/*! @class MyClass
@code
    ...some code example
@endcode */

И это обычно работает очень хорошо.

Но сегодня я пытаюсь использовать тот же метод со специализированным шаблоном класса, и я не могу заставить его перейти в правильное место в документации.

Вот нерабочий пример:

/** This is my class description */
template < class Tr, class... Args >
class MyClass<Tr(Args...)> : public MyBaseClass {
    ...
};


/*! @class MyClass<Tr(Args...)>
@code
    ...some code example
@endcode */

Я искал документацию, Doxyfile и по Интернету, но я все еще не могу сказать, не делаю ли я это так, как должно, или это «ошибка» или необычный случай.

Спасибо за ваше просветление.


Редактировать: Я провел еще несколько тестов с простейшим классом шаблонов (без специализации), и он тоже не работает.

/** This is my class description */
template < class Tr >
class MyClass
{
    ...
};


/*! @class MyClass // @class MyClass< Tr > // @class template < Tr > MyClass
@code
    ...some code example
@endcode */

Я пытался указать шаблон после или доимя класса, с ключевым словом "template" или без него и только с использованием имени класса, но, похоже, оно не работает никоим образом.


Редактировать 2: Работает с простыми классами шаблонов,Предыдущий тест редактирования не работал, потому что я определил класс в пространстве имен, не указав пространство имен в комментарии Doxygen: @class namespace :: MyClass

Но он все еще не работает со специализированными классами шаблонов, иЯ все еще не могу перенаправить блок комментариев в специализированный шаблонный класс.

1 Ответ

0 голосов
/ 09 апреля 2011

Я думаю, вы не должны указывать там параметр шаблона. Сделайте что-то подобное:

/** This is my class description */
template < class Tr, class... Args >
class MyClass<Tr(Args...)> : public MyBaseClass {
    ...
};

/*! @class MyClass
@code 
    ...some code example
@endcode */

Я не уверен, работает ли он (здесь не установлен doxygen), но думаю, что так и должно быть.

...