如何给出使用Doxygen的类的示例代码

How do I give example code for a class with Doxygen?

本文关键字:代码 Doxygen      更新时间:2023-10-16

我正试图记录一个嵌入在命名空间中的类,我想给出一个用法示例。我已经编写并包含了示例,它们显示在示例选项卡中。但是,它们在类本身中没有被引用。例如,从这个页面上的代码来看,他们的Doxygen命令写为:

/** example example_test.cpp
 * This is an example of how to use the Test class.
 * More details about this example.
 */

看起来Doxygen解析了命令和文件,并识别出引用了Test类。对我来说,这种情况似乎没有发生。这个功能没有很好的文档记录,谷歌几乎不可能实现。

这是我的代码的总体布局:

namespace exampleSpace
{
  ///Doxygen documentation
  class exampleClass {};
  ///@example example1.cpp
  ///  example1 description
  ///@example example2.cpp
  ///  example2 description
}

示例描述为类命名,官方文档中的描述也是如此。然而,Doxygen似乎认出了他们的,而不是我的。

我的示例代码是完整的,并且编译/运行正确。

那么,放置这些命令的正确位置在哪里,这样Doxygen就知道它们是这个特定类的示例了?

EDIT:看起来Doxygen实际上是在解析源代码,因为它成功地链接到了类和代码中的任何成员函数。但是,类页面本身并没有链接到这些文件。

我使用了snippet。如果引用另一个文件,则可以在该文件中用[mytag]区域包围代码块。然后在使用snippet的地方显示这些。

另请参阅https://stackoverflow.com/a/35759133/356726和https://stackoverflow.com/a/16034375/356726

目前只是猜测,但我敢打赌Doxygen由于命名空间的原因没有匹配。

实现链接的一些想法:

  • 明确限定示例中所有名称的命名空间
  • 将代码放在命名空间中的示例中