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

时间:2014-11-05 15:37:21

标签: c++ inheritance documentation virtual doxygen

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

例如(我无法发布真实来源)。

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

   /** More Docs
    */
   virtual void notpure() {
      ...
   }
};

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

class Child: public Parent<int> {
   void pure() {
      ...
   }
};

然后我希望Doxygen为这两个类生成文档,每个函数都有相同的文档,除非我重新记录被覆盖的函数。

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

谢谢

3 个答案:

答案 0 :(得分:5)

根据INHERIT_DOCS标记,如果您将其设置为“”,则应该已经这样做了。

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

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

答案 1 :(得分:3)

所以,我会回答我自己的问题。排序。

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

我收到了错误消息

  

文件在评论栏中间结束!也许缺少\ endcode?

由于我有几个未记录的文件,我花了一些时间来浏览生成的警告。这是通过使用

来处理的
  

EXTRACT_ALL = YES

在我的配置文件中。 HERE是与我有类似问题的人。

答案 2 :(得分:1)

我在生成抽象类的文档时遇到了类似的问题。解决方案是使方法公开(默认情况下,在C ++类中,所有方法都是私有的,您需要在Doxygen配置文件中将EXTRACT_PRIVATE设置为YES以生成文档)。

我希望这有助于某人!