c++ - 多氧 C++ : document privately inherited members exposed by the "using" declaration

标签 c++ doxygen

例如,我有以下类:

class A {
    public:
        void methodOne();
}

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

我还没有找到强制 doxygen 获取文档 block 的方法。

作为约束,我有许多其他 doxygen 记录的私有(private)成员(也来自其他类),我不希望 doxygen 处理这些成员的文档 block ,所以 EXTRACT_PRIVATE 不是一个选项,即使如果使用像 \cond ...\endcond 这样的条件 block 。

我找到了一个 example可能有帮助的东西。它使用 INPUT_FILTER 配置变量有效地针对一些标记为私有(private)的成员,并在将文件提供给 doxygen 之前将它们的声明更改为公共(public)。不幸的是,这并不完全适用于我的情况,因为从技术上讲,该方法已经公开。

感谢您的帮助。

最佳答案

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

例如,Doxyfile 包含:

PREDEFINED = _DOXYGEN_

源可以定义如下:

class A {
    public:
        void methodOne();
}

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

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

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

关于c++ - 多氧 C++ : document privately inherited members exposed by the "using" declaration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36421785/

相关文章:

c++ - 如何在 C++ 中用空格实现 Cin<<

c++ - 具有三向比较谓词的 STL 函数

c++ - (C++ 线程): Creating worker threads that will be listening to jobs and executing them concurrently when wanted

c - Doxygen:\static 命令忽略 C 成员函数

c# - P/Invoke 语法 - 我是否在 C# 中正确翻译了我的 C++ 函数?

c++ - 模板和单独编译

eclipse - 如何使用 Eclipse 的 doxygen 插件 eclox

c++ - 如何使用 Doxygen 记录 SFINAE 启用的功能?

c++ - 记录在一行中声明的成员而不创建组

c++ - doxygen 文件列表不链接到文件