合并两(3)个宏

时间:2016-03-10 13:09:21

标签: c++ macros

我目前正在开发一个项目,我正在以相同的顺序反复使用相同的宏来进行类的序列化。我使用Boost宏进行序列化。 即:

BOOST_CLASS_EXPORT(SameClass)
BOOST_SERIALIZATION_FACTORY_0(SameClass)

如何将这两者合并为一个宏。

 #define registrateDMP(arg) BOOST_CLASS_EXPORT(arg) BOOST_SERIALIZATION_FACTORY_0(arg)

不起作用。此外,我想在完整宏中添加第三个宏,如果实际可行的话。

#define DMPTYPE_BASICDMP_GUID boost::serialization::guid<SameClass>()

如果我独立使用这三个宏,我的程序可以正常工作,但由于对宏的调用总是按照相同的顺序进行,并且我将它们用于很多不同的情况,并希望将它们用于更多的情况,这样会很好简化一个宏的命令。有人可以帮忙吗?谢谢

1 个答案:

答案 0 :(得分:0)

试试这个:

#define registrateDMP(arg)\
BOOST_CLASS_EXPORT(arg)\
BOOST_SERIALIZATION_FACTORY_0(arg)

或者这个:

#define registrateDMP(arg)\
{{BOOST_CLASS_EXPORT(arg);}\
{BOOST_SERIALIZATION_FACTORY_0(arg);}}