我有一个可能有功能的类,我想隐藏一个特定的功能。例如
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);
}
假设我想隐藏说Function2我该怎么做。
现在,在当前场景中,它显示了所有四个功能 及其文件。
现在,我在.doxygen规则文件中设置了以下属性:
EXTRACT_ALL = YES
你能告诉我一些可以隐藏的东西吗?功能2?
答案 0 :(得分:14)
如果您在配置文件中有EXTRACT_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_GROUP_DOC = YES
。
答案 1 :(得分:12)
使用cond或internal
/*! \cond PRIVATE */
//only documented if cond is enabled
// ...
/*! \endcond */
答案 2 :(得分:8)
做这样的事情:
#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_SHOULD_SKIP_THIS
确保ENABLE_PREPROCESSING
设置为YES
。
简而言之,您只是利用预处理器概念为您服务!
答案 3 :(得分:1)
我想我曾经使用EXCLUDE_SYMBOLS来实现这样的目标。
EXCLUDE_SYMBOLS标记可用于指定一个或多个符号名称 (名称空间,类,函数等)应该从中排除 输出。符号名称可以是完全限定名称,单词或者如果是 使用通配符*,子串。示例:ANamespace,AClass, AClass :: ANamespace,ANamespace :: * Test
不幸的是,我无法完全回想起也找不到配置条目。
EXCLUDE_SYMBOLS = Test::Function2*