【问题标题】:Doxygen comment inside a macro宏中的 Doxygen 注释
【发布时间】:2011-09-05 18:07:51
【问题描述】:

我的问题如下:我有一组具有相同构造函数参数的文件。我在每个文件中使用的宏中定义了构造函数的参数。例如下面的构造函数:

Planar(BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3);

使用 BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3 宏来扩展平面构造函数的参数:

#define BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3                                \
  size_t height,                                                            \
  size_t width,                                                             \
  size_t stride,                                                            \
  size_t effectiveChannels,                                                 \
  BSPF_UTILS::bspf_8u* buffer

我的问题如下:我想为所有使用相同宏的构造函数提供相同的 Doxygen 文档,换句话说,我只想为共享相同宏的构造函数编写一次文档。

我该怎么做?

我尝试编写一个宏(使用参数的构造函数的名称),但它不起作用,因为 Doxygen 扩展了宏而没有换行。

有什么好的方法吗?

感谢您的回答。

【问题讨论】:

    标签: c++ macros doxygen


    【解决方案1】:

    宏总是在没有换行符的情况下展开,这与 doxygen 无关。但是,解决方案相对简单:

    有一个额外的文本文件("BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3.txt" 或类似文件),其中包含特定于该定义的注释,一个额外的

    #define BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3_INCLUDE \ 
        "BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3.txt"
    

    最后以下列方式使用它:

    // your .cpp
    #include BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3_INCLUDE
    Planaer::Planar(BSPF_IMAGE_FORMAT_STD_CONST_PARAMS_3){
    }
    

    包含只需将 .txt 的内容复制并粘贴到您的 .cpp 中,就是这样。

    【讨论】:

    • 感谢您的回答,这不是一个坏主意!关于预处理器,我说的是 Doxygen 预处理器,它在单行上扩展多行宏。
    • 不存在多行宏。这就是为什么当您编写看起来像多行宏的内容时,您必须在行尾放置一个反斜杠。该反斜杠本质上告诉预处理器后面的行尾并不是真正的 EOL。它是一个空间。
    • 转念一想,它甚至不是一个空格。预处理器只是吃掉它,就好像它根本不存在一样。你可以自己测试一下。在代码的关键部分之前放置以下 C++ 风格的注释: // 注释掉下一行代码 \
    猜你喜欢
    • 2012-02-28
    • 2023-03-12
    • 2023-03-27
    • 2019-02-13
    • 1970-01-01
    • 2015-07-05
    • 2012-05-28
    • 2013-01-01
    • 1970-01-01
    相关资源
    最近更新 更多