在使用库 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/