c++ - Doxygen:剥离顶级命名空间

标签 c++ namespaces doxygen

在使用库 ABC 时,很自然地所有名称都包含在同一顶级 namespace 中。是否可以从 class 名称中删除顶级 namespace,但显示封闭的 namespaces

最佳答案

Doxygen 中没有这样的选项。您仍然可以使用预处理器使其工作。

#ifndef DOXY_PARSER
    #define LIB_NAMESPACE_STARTS namespace lib_namespace { /##/
    #define LIB_NAMESPACE_ENDS } /##/
    #define LIB_NAMESPACE lib_namespace
#else
    #define LIB_NAMESPACE_STARTS /##/
    #define LIB_NAMESPACE_ENDS /##/
    #define LIB_NAMESPACE
#endif

您应该将此代码包含到一些通用 header 中,并在 Doxygen 选项中设置预定义的 DOXY_PARSER 宏。此解决方法使库命名空间的使用不太方便,但并不是那么重要。

LIB_NAMESPACE_STARTS();
    namespace internal_namespace {
        struct Trololo {};
    }
    LIB_NAMESPACE::internal_namespace::Trololo T;
LIB_NAMESPACE_ENDS();

关于c++ - Doxygen:剥离顶级命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6811816/

相关文章:

c - Doxygen 与\file 命令中的路径相关的问题

c++ - 在单个 vbo 中对多个网格进行纹理化

c++ - 我应该为我的应用程序和库使用智能指针吗?

c++ - NetBeans - 两个项目 - 一个找不到要包含的文件 (C++)

.net - 序列化问题 : Different namespaces (. NET)

c++ - Doxygen 和长类名

c++ - Doxygen:从页面链接到 C++ 类成员而不写类名

c++ - 在 Qt 中将 int 转换为 QByteArray

PHP 命名空间别名的工作方式很奇怪

javascript - 避免 namespace 污染的模式