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_SUPPORTYES,所以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

回到顶部