用C ++ Boost实现XML序列化:如何引用基类?
当XML使用Boost库序列化一个类时,我们可能需要为派生类做这件事。 在这种情况下,手册1指示包含对基类的引用:
BOOST_SERIALIZATION_BASE_OBJECT_NVP(my_base_class)
但是,如果此类位于命名空间内,我们是否应该包含该类的名称, 或者没有命名空间?
例如,基类是Awesome :: Foo ,它的派生类是Awesome :: Bar 。
现在的问题是,我们应该使用,在Bar的执行序列化里面,下面哪个语句?
BOOST_SERIALIZATION_BASE_OBJECT_NVP(Foo)
BOOST_SERIALIZATION_BASE_OBJECT_NVP(Awesome::Foo)
我会从Boost文档中得出结论:案例1是正确的。
根据与Boost序列化相关的文档
他们关于BOOST_SERIALIZATION_BASE_OBJECT_NVP(my_base_class)
:
“请注意,这些宏必须用在类的命名空间中,并且不要在参数中限定命名空间。”
在这个示例链接中,他们还给出了一个使用这个宏的代码示例。
链接地址: http://www.djcxy.com/p/60651.html上一篇: XML Serialization with C++ Boost: how to refer to the base class?