C++ 如何在doxygen中隐藏特定函数(在c+;+;)?
我有一个类,它可能有函数,我想隐藏一个特定的函数。比如说C++ 如何在doxygen中隐藏特定函数(在c+;+;)?,c++,doxygen,C++,Doxygen,我有一个类,它可能有函数,我想隐藏一个特定的函数。比如说 class Test { /** * About Function1 * * @param[in] arg1 About arg1 * @param[in] arg2 About arg2 */ public void Function1(int arg1,char arg2); // Presume same documentation for t
class Test
{
/**
* About Function1
*
* @param[in] arg1 About arg1
* @param[in] arg2 About arg2
*/
public void Function1(int arg1,char arg2);
// Presume same documentation for this function also
public void Function2(int,char);
// Presume same documentation for this function also
public void Function3(int,char);
// Presume same documentation for this function also
public void Function4(int,char);
}
假设我想隐藏,我会怎么做呢
现在在当前场景中,它将显示所有四个功能
连同它的文件
现在,我在.doxygen规则文件中设置了以下属性:
EXTRACT\u ALL=YES
你能不能建议我一些可以隐藏的东西,比如说Function2?这样做:
#ifndef DOXYGEN_SHOULD_SKIP_THIS
/* code that must be skipped by Doxygen */
/* in your case a method/function */
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
在配置文件中,放入PREDEFINED=DOXYGEN\u应该跳过\u这个
确保ENABLE\u PREPROCESSING
设置为YES
简而言之,您只是在利用预处理器概念为您工作 我想我曾经用这个方法实现过这样的目标
“排除符号”标记可用于指定一个或多个符号名称
(名称空间、类、函数等)应排除在
输出。符号名称可以是完全限定的名称、单词或
使用通配符*作为子字符串。示例:ANamespace、AClass、,
AClass::ANamespace,ANamespace::*测试
不幸的是,我不能完全回忆也找不到配置条目
EXCLUDE_SYMBOLS = Test::Function2*
如果配置文件中有
EXTRACT\u PRIVATE=NO
,则可以将任何成员标记为Doxygen的私有成员,并且它不会为该成员生成文档:
/// @private
public void Function2(int, char);
附加问题:如果您想为所有四名成员使用相同的文档,您可以使用以下方法之一:
/**
* About Function1,2,3,4...
*/
/// @{
public void Function1(int arg1, char arg2);
public void Function2(int arg1, char arg2);
public void Function3(int arg1, char arg2);
public void Function4(int arg1, char arg2);
/// @}
/**
* About Function1,2,3,4...
*/
public void Function1(int arg1, char arg2);
/// @copydoc Function1
public void Function2(int arg1, char arg2);
/// @copydoc Function1
public void Function3(int arg1, char arg2);
/// @copydoc Function1
public void Function4(int arg1, char arg2);
使用{
..}
的人需要在配置文件中使用DISTRIBUTE\u GROUP\u DOC=YES
。使用cond或internal
/*! \cond PRIVATE */
//only documented if cond is enabled
// ...
/*! \endcond */
我认为写这篇文章会让我的生活更加和谐,你为什么这么认为@Ranathank非常适合快速响应。在我的项目中,我有大约2000多个文件,虽然这看起来是一个很好的解决方案,但做这个更改是不可能的。如果您可以建议我在文档中添加一些内容,然后在配置文件中进行一些设置,我将能够跳过该功能。谢谢,我想不起任何替代解决方案。在我们的例子中,我们一编写方法就记录代码。所以,如果我们想阻止它记录文档,我们只需要添加这个宏。但是,你可以在一个代码> > iIFNDEF < /C++ >中加入多个方法/类,以减少一些努力。编写C++有效代码来记录项目的坏主意。我尝试添加如下代码,如ExtabdIsMeave=代理::const从输出中跳过此函数,但如果Lebel是具有以下签名void Label(int)const的函数,则此函数不起作用