doxygen c ++:记录由“using”声明公开的私有继承成员

时间:2016-04-05 09:05:44

标签: c++ doxygen

举个例子,我有以下几个类:

class A {
    public:
        void methodOne();
}

class B : private A {
    public:
        /** Brief description.
        */
        using A::methodOne;
}

我还没有找到一种强制doxygen来获取文档块的方法。

作为约束我还有很多其他的doxygen记录的私有成员(来自其他类)我不想让doxygen处理文档块,所以 EXTRACT_PRIVATE 不是一个选项,甚至如果使用条件块,如 \ cond ... \ endcond

我找到了example可能有用的东西。它使用 INPUT_FILTER 配置变量有效地定位一些标记的私有成员,并在将文件提供给doxygen之前将其声明更改为public。不幸的是,这并不适用于我的情况,因为该方法在技术上已经被公开。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题。一种解决方案虽然很丑陋,但它是在Doxyfile中设置PREDEFINED选项,并在Doxygen生成文档时使用#ifdef预处理程序指令将成员函数实际添加到派生类中。

例如,使用包含以下内容的Doxyfile:

PREDEFINED = _DOXYGEN_

源可以定义如下:

class A {
    public:
        void methodOne();
}

class B : private A {
    public:
        #ifdef _DOXYGEN_
        /** Brief description.
        */
        void methodOne();
        #endif
        using A::methodOne;
}

这很糟糕,原因有几个,但是最糟糕的部分是必须从基类中复制函数声明,因此,如果该声明发生更改,则需要记住更新派生类文档。

这是我想到的记录此类声明的唯一方法,因为Doxygen不支持此功能。