【问题标题】:c++ Doxygen \example and descriptionc++ Doxygen \example 和描述
【发布时间】:2018-08-30 14:48:25
【问题描述】:

我正在使用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
};

我怎样才能获得该类的详细描述和一个示例文件的链接,该示例文件以详细的方式显示该类的用法?

@example 的 doxygen 示例中,他们引用了成员变量的示例。该示例链接到此成员函数。在这种情况下,这不是我希望实现的,因为我想展示如何在一个完整的示例中使用这个类,而不仅仅是在使用说明中。

【问题讨论】:

  • 你使用的是哪个版本的 doxygen?
  • 1.8.8,将其添加到问题中。
  • \example 只有一个参数,文件名。请更正并再次检查。 1.8.8版本有点老了,目前是1.8.14。
  • @BeatScherrer: "这不是我希望在这种情况下实现的目标,因为我想展示如何在一个完整的示例中使用这个类,而不仅仅是在使用说明中。 ”我不明白你的意思。他们提供的示例代码正是:示例代码。您可以根据需要使代码变大。那么以 Doxygen 的方式做事到底有什么问题呢?
  • @NicolBolas 他们提供的示例是针对成员函数的,而不是使用该类的示例,因此包含在文档的example() 部分中(请参阅 doxygen 示例输出)。我的目标是为全班树立这样的榜样。但是由于该类已经有描述,我不能简单地在描述的末尾添加\example,这导致将类的描述接管到示例的描述中。

标签: c++ doxygen


【解决方案1】:

Doxygen 处理示例的方式是代码示例是与常规文档分开的页面。所以@example 就像@page@module:它获取整个文档块并将其应用于示例页面。并且在该示例代码中使用的任何文档化实体都将在其文档中添加该示例的链接。

所以你需要一个像这样的独立文档块:

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

这不必与您的 test 类位于同一文件中。

【讨论】:

  • 还可以查看\snippet...\verbinclude\include... 等命令
  • \example 的示例中,该示例直接链接到类。如果我不需要将它包含在类声明中,这种链接是如何实现的?
  • 我想你指的是doxygen的自动链接选项。
  • 我将@example 块放在类定义的末尾,现在它可以正常工作了。我相信我尝试过这种方式,但似乎我错过了一些东西,最终会用我所做的事情写一个答案。
【解决方案2】:

在收到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
 */

我已经尝试过这种方式,但是因为我没有在Doxyfile 中设置EXAMPLE_PATH,所以找不到示例,因此@example 标记变得无用。指定 EXAMPLE_PATH 后,一切都按预期工作。

【讨论】:

  • 你也可以把它放在之前类。或者在一个完全不同的文件中。示例和test 之间的联系是因为TestExample.cpp 实际上在其代码中使用了类test,而不是因为它与类的接近。
  • @NicolBolas 好的,这是有道理的,这意味着@example 块最好在示例文件中而不是类定义中?
  • 你把它放在你觉得最好的地方。我的观点是,重要的是要意识到将它放在哪里并不重要,因为它与代码中的各种记录实体的链接方式无关。
猜你喜欢
  • 1970-01-01
  • 2012-10-18
  • 2020-07-25
  • 2017-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-14
  • 1970-01-01
相关资源
最近更新 更多