c ++ Doxygen \ пример и описание - PullRequest
0 голосов
/ 30 августа 2018

Я использую doxygen version 1.8.8 для создания документации C ++. Я включил подробное описание моего шаблонного класса следующим образом:

/** A test class. Detailed description of the test class
 *  Usage:
 *  @code
 *    test a;
 *  @endcode
 */
template<>
class test
{
  //some class
};

и хотите включить пример в файл с именем testexample.cpp

если я просто поставлю @example в конце подробного описания, подробное описание будет применено к примеру.

/** A test class. Detailed description of the test class
 *  Usage:
 *  @code
 *    test a;
 *  @endcode
 *  @example testexample.cpp
 *  An example of the test class.
 */
template<>
class test
{
  //some class
};

Как получить подробное описание класса И ссылку на файл примера, в котором подробно описано использование класса?

В примере doxygen @example они ссылаются на пример переменной-члена. И пример связан с этой функцией-членом. Это не то, чего я хочу достичь в этом случае, так как я хочу показать, как этот класс может использоваться в полностью работающем примере, а не только в инструкции по использованию.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Получив ответ от nicol, я добился того, что искал, следующим образом:

/** A test class. Detailed description of the test class
 *  Usage:
 *  @code
 *    test a;
 *  @endcode
 */
template<>
class test
{
  //some class
};
/**@example TestExample.cpp
 * Simple example of how to use the test class
 */

Я уже пробовал это таким образом, но из-за того, что я не установил EXAMPLE_PATH в Doxyfile, пример найти не удалось, и поэтому тег @example стал бесполезным. После указания EXAMPLE_PATH все заработало как положено.

0 голосов
/ 30 августа 2018

То, как Doxygen работает с примерами, заключается в том, что пример кода - это отдельная страница из обычной документации. Таким образом, @example похож на @page или @module: он берет весь блок документации и применяет его к странице примера. И любая документированная сущность, которая используется в этом примере кода, будет дополнена документацией со ссылками на этого примера.

Итак, вам нужен отдельный блок документации, подобный этому:

/**
 *  @example testexample testexample.cpp
 *  An example of the test class.
 */

Это не должно быть в том же файле, что и ваш test класс.

...