Doxygen使用默认参数重复C++函数
我正在使用Doxygen来记录我的一些代码。我有一个使用默认参数的函数,这是在头部,即规定:Doxygen使用默认参数重复C++函数
unsigned int CountColumns(const std::string&,const std::string& delim="");
和源文件中相应的实施:
unsigned int CountColumns(const string& input,const string& delim) {
...
}
当我使用Doxygen的产生我的文档,CountColumns有两个条目 - 一个包括默认值,而另一个没有:
unsigned int CountColumns (const string &input, const string &delim) unsigned int CountColumns (const std::string &, const std::string &delim="")
这又如何避免?我不希望多个函数定义混淆我的文档。
编辑:正如我在下面的回答中也提到的,问题似乎是由于头文件在参数中使用'std :: string',而源文件包含'使用std :: string'语句,然后在参数中使用'string'。如果我将函数定义更改为在源文件中使用'std :: string',则Doxygen将它识别为与头中声明的函数相同的函数。
回答:
我建议在你的配置文件中设置BUILTIN_STL_SUPPORT
到YES
,所以doxygen知道string是std中定义的类命名空间。
回答:
那么如何从文档中排除额外的功能呢?
这是从Doxygen的FAQ,
“我怎样才能让doxygen的忽略一些代码片段?
新的和最简单的方法是在开始和一个带有\cond
命令添加一个注释块随着在一段代码应该被忽略的末尾\endcond
命令注释块这应该是当然的同一文件中
但你也可以使用Doxygen的预处理器为这样:如果你把
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/* code that must be skipped by Doxygen */
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
around the blocks that should be hidden and put:
PREDEFINED = DOXYGEN_SHOULD_SKIP_THIS
in the config file then all blocks should be skipped by Doxygen as long as
PREPROCESSING = YES。 “
回答:
该问题似乎是由于头文件在参数中使用'std :: string'而源文件包含'using std :: string'语句,然后使用'string '在参数中,如果我改变函数定义在源文件中使用'std :: string',Doxygen也会识别它与头部声明的函数相同。
虽然不理想,但它是解决方案,并且不太笨拙
以上是 Doxygen使用默认参数重复C++函数 的全部内容, 来源链接: utcz.com/qa/259896.html