C++ 我如何给出一个带有Doxygen的类的示例代码?

C++ 我如何给出一个带有Doxygen的类的示例代码?,c++,class,doxygen,C++,Class,Doxygen,我试图记录一个嵌入在名称空间中的类,我想给出示例用法。我已经编写并包含了示例,它们显示在示例选项卡中。但是,它们不会在类本身中引用。例如,在上的代码中,它们的Doxygen命令编写为: /** \example example_test.cpp * This is an example of how to use the Test class. * More details about this example. */ Doxygen似乎解析了命令和文件,并识别出引用了Test类。对我来

我试图记录一个嵌入在名称空间中的类,我想给出示例用法。我已经编写并包含了示例,它们显示在示例选项卡中。但是,它们不会在类本身中引用。例如,在上的代码中,它们的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知道它们是这个特定类的示例呢


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

这只是一个猜测,但我打赌Doxygen不会因为名称空间而匹配

实现链接的一些想法:

  • 显式限定示例中所有名称的命名空间
  • 将代码放入命名空间中的示例中

我用了
\snippet
来做这个。您引用了另一个文件,在该文件中可以用
[mytag]
区域包围代码块。然后在使用
\snippet
的位置显示这些代码


另请参见和

这正是我所怀疑的,但我可以想象,如果代码编译并运行,它会起作用。有没有什么东西可以用来尝试和调试它?我几乎处于停滞状态。编辑:它看起来像是在解析,因为类和方法链接到各自的Doxygen页面。Hm,显式使用名称空间(即
exampleSpace::examplesclass
),而不是
使用名称空间exampleSpace
似乎起到了作用。@Littlegator是的,如果您仔细想想,当有一个非限定名称时,除非您解析所有包含的文件,否则无法知道它来自哪个命名空间。我不知道doxygen是否支持
使用exampleSpace::exampleClass
来减少键入的次数,并仍然创建链接。它可能希望您也有文件和类描述。我记不起这对我有什么帮助了。我不完全清楚你的意思。您是说
@example
命令需要类描述吗?从文档来看,似乎不是这样。我甚至不知道如何指定它。您在Doxygen配置文件中正确设置了示例路径吗?是的。正在显示和分析文件。事实上,显式声明第一个类对象的名称空间似乎使它能够工作。