Doxygen C++ - 不记录模板类中的虚函数

aid*_*ald 7 c++ documentation virtual inheritance doxygen

我有一个模板类,它有一堆纯虚拟和实现的虚函数.然后我让孩子继承这个班级.我想记录虚拟父类中的函数,并让子代在Doxygen中继承此文档.

例如(我不能发布真实的来源).

template <typename A>
class Parent {
   /** Documentation
    */
   virtual void pure() = 0;

   /** More Docs
    */
   virtual void notpure() {
      ...
   }
};
Run Code Online (Sandbox Code Playgroud)

在包含所有正确包含的不同文件中(至少对于编译器而言)

class Child: public Parent<int> {
   void pure() {
      ...
   }
};
Run Code Online (Sandbox Code Playgroud)

然后我想要Doxygen为每个类生成文档,每个函数使用相同的文档,除非我重新记录被覆盖的函数.

我运行Ubuntu 14.04并使用存储库Doxygen 1.8.6以防万一.

谢谢

Mar*_* A. 5

根据INHERIT_DOCS标记,如果将其设置为" " ,它应该已经这样做了.

AFAIK doxygen在解析模板类时遇到了一些问题,这可能是您的文档没有被复制的原因(即doxygen认为Child继承自不同的Parent类).

您可以尝试使用\ copydoc命令强制此行为.如果仍然无效,您可能要么要求补丁或自己修复.


aid*_*ald 5

因此,我将回答我自己的问题。有点。

如果有人遇到同样的问题,请确保检查注释错误。Doxygen可以很好地处理我的模板,但是我确实有一个问题,因为我习惯于将/ *代码/ ** /放入程序中,因此我可以在调试时快速取消注释大块代码。Doxygen不喜欢这样!

我收到错误消息

文件在注释块中间结束!也许缺少\ endcode?

我花了一些时间才能弄清生成的警告,因为我有几个未公开的文件。这是通过使用

EXTRACT_ALL =是

在我的配置文件中。这里的人和我有类似的问题。