Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何在doxygen中隐藏特定函数(在c+;+;)?_C++_Doxygen - Fatal编程技术网

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的函数,则此函数不起作用