2011-05-31 70 views
1

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

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展开没有换行符的宏。

有没有很好的方式来做到这一点?

感谢您的回答。

回答

2

宏总是展开而没有换行符,这与doxygen没有任何关系。然而,一个解决方案是relativly简单:

有一个包含特定于该定义的注释一个额外的文本文件("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中,就是这样。

+0

感谢您的回答,这不是一个坏主意!关于预处理器,我在谈论Doxygen预处理器,它将单线上的多线宏展开。 – benlaug 2011-05-31 19:36:05

+0

没有多线宏这样的事情。这就是为什么当你向你写出看起来像多线宏的东西时,你必须在行尾加一个反斜杠。该反斜杠基本上告诉预处理器,接下来的行尾并不是真正的EOL。它是一个空间。 – 2011-05-31 19:50:32

+0

再次想到,它甚至不是空间。预处理器就好像它根本不存在一样。你可以自己测试一下。在您的代码的关键部分之前放置以下C++样式的注释: //注释掉下一行代码\ – 2011-05-31 19:54:37