gpt4 book ai didi

c++ - Doxygen:如何记录没有#defined 的宏?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:00:54 24 4
gpt4 key购买 nike

我正在尝试使用 Doxygen 来记录一些选项控制宏符号的功能,例如:

 //! \def BOOST_SOMEFEATURE
/*! \brief Option macro that is not normally defined
* but can optionally be defined by consumers to activate the option.
*/

但这不会被索引并且评论将被忽略,因为宏未定义。

只有当有#define like

时,才会在文档中生成 Doxygen 宏符号条目
#define BOOST_SOMEFEATURE

在头文件和其他文件中。

除了像

这样的讨厌的软糖之外,我可以强制宏符号的文档吗
  #undef BOOST_SOMEFEATURE

或者可能包含一个虚拟 .cpp 文件,其中包含用于控制选项的所有宏符号的 #define

  #define BOOST_SOMEFEATURE
#define BOOST_SOMEOTHERFEATURE
...

最佳答案

执行以下操作:

  1. 将以下行添加到您的 Doxyfile:

    PREDEFINED = _DOXYGEN_
  2. 将您的#define 宏放在#ifdef _DOXYGEN_ 部分:

    #ifdef _DOXYGEN_
    /*!
    * Documentation describing the BOOST_SOMEFEATURE macro.
    */
    #define BOOST_SOMEFEATURE

    /*!
    * Documentation describing the BOOST_SOMEOTHERFEATURE macro.
    */
    #define BOOST_SOMEOTHERFEATURE
    #endif

使用此方法,您的宏在正常构建期间不会被预处理器看到,但会被 Doxygen 看到。

您可以将此部分放在您喜欢的代码中的任何位置:在 .cpp 文件、.h 文件中,或者根据需要创建一个虚拟 .cpp 文件。

另见

关于c++ - Doxygen:如何记录没有#defined 的宏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35090656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com