微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 如何使用Doxygen记录宏生成的类?

我使用宏以下列方式生成类:

generator.h:

class CLASS_NAME : public parent
{
    //generate variables with names given by CLASS_VARIABLES using complicated
    //Boost.Preprocessor stuff.
};

#undef CLASS_NAME
#undef CLASS_VARIABLES

myclass.h:

#define CLASS_NAME MyClass
#define CLASS_VARIABLES (a,b,c,x,y,z)
#include "generator.h"

实际的类更复杂,并使用各种Boost.Preprocessor宏.有没有办法通过向generator.h添加注释来自动记录使用Doxygen生成的类,或者生成带文档的示例类?我尝试过启用ENABLE_PREPROCESSING和MACRO_EXPANSION,但这似乎不够.

解决方法

它不会起作用. Doxygen预处理器并不真正执行完整的文件包含(它只查看包含的文件中的宏定义;否则,ENABLE_PREPROCESSING指令将完全无用!).所以#include“generator.h”没有效果.

如果您使用所包含文件内容替换#include指令,它将起作用. (我知道,这不是很有用).

另一种方法修改你的文件,如下所示:

generator.h:

#define DEFCLASS class CLASS_NAME : public parent \
{ \
   ... whatever ... \
};

myclass.h:

#define CLASS_NAME MyClass
#define CLASS_VARIABLES (a,z)
#include "generator.h"
DEFCLASS

但如果每个源文件多次使用DEFCLASS(可能是Doxygen的错误/缺陷),这将不起作用.

原文地址:https://www.jb51.cc/c/118100.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐