【问题标题】:How can I exclude a method inside a class with doxygen如何使用 doxygen 排除类中的方法
【发布时间】:2015-08-16 01:19:18
【问题描述】:

我正在使用 Objective-C 语言。我有 3 个班级:鸡、鸽子、狗。每个类都有run方法。

Chicken.h
 -(void)run;

Dove.h
 -(void)run;

Dog.h
 -(void)run;

我想在 Dove 类中排除 run 方法。我发现 EXCLUDE_SYMBOLS 可以做到这一点。但是如果我设置配置:EXCLUDE_SYMBOLS = save,则排除3个类中的所有保存方法。

我只能排除 Dove 类的保存方法吗?

【问题讨论】:

  • 不确定是否提供像 Dove::run 这样的完整限定名。另一种可能性可能是使用 \cond \endcond 构造。
  • 感谢艾伯特。我尝试了 Dove::run,但它不起作用。我认为 \cond \endcond 在这种情况下是一个不错的选择。

标签: objective-c doxygen


【解决方案1】:

我不知道objective-c,但对于C++,我知道这样做的唯一方法是预处理它。为此,请设置配置值:

ENABLE_PREPROCESSING   = YES
PREDEFINED             = DOXYGEN_SHOULD_SKIP_THIS

然后将要排除的方法包装在 ifndef 块中。这是一个 C++ 示例:

/// doc comment for class Dove
class Dove {
public:
    /// doc comment for foo
    void foo();

#ifndef DOXYGEN_SHOULD_SKIP_THIS
    // the bar method will not be seen by doxygen, so you should not
    // see it in any documentation
    void bar();
#endif
}; 

这是您可以使用的一般策略。 #ifndef 块中的任何内容都将被预处理掉,并且对 doxygen 不可见。

【讨论】:

  • 谢谢菲尔。如果我们使用预处理,实例方法表仍然会出现保存方法。它只在方法文档表中消失。 ://
  • 我不确定我知道你的意思是它只是消失在方法文档表中。我尝试更新我的答案以包含一个更完整的 c++ 示例。我希望它有所帮助。
  • 太酷了!我很蠢。我在void bar();前面加了#endif 谢谢@Phil
猜你喜欢
  • 2010-12-09
  • 2011-08-03
  • 1970-01-01
  • 2010-11-28
  • 1970-01-01
  • 1970-01-01
  • 2021-12-28
  • 1970-01-01
相关资源
最近更新 更多