使用C ++ Boost进行XML序列化:如何引用基类?

时间:2014-08-09 21:17:22

标签: c++ boost xml-serialization

当使用Boost库对XML进行序列化时,我们可能需要为派生类执行此操作。在这种情况下,手册1指示包含对基类的引用:

  

BOOST_SERIALIZATION_BASE_OBJECT_NVP(my_base_class)

但是,如果此类在命名空间内,我们是否应该在没有命名空间的情况下包含 OR 的类的名称?

例如,基类是 Awesome :: Foo ,它的派生类是 Awesome :: Bar

问题是,我们应该在Bar的序列化实现中使用以下哪些语句?

  1. BOOST_SERIALIZATION_BASE_OBJECT_NVP(Foo)
  2. BOOST_SERIALIZATION_BASE_OBJECT_NVP(Awesome::Foo)

1 个答案:

答案 0 :(得分:2)

我将从Boost文档中得出结论,案例1是正确的。

根据与on Boost serialization

相关联的文档

他们陈述BOOST_SERIALIZATION_BASE_OBJECT_NVP(my_base_class)

  

"请注意,这些宏必须在类的命名空间中使用,   并且不在参数中限定命名空间。 "

他们还在this example link使用此宏提供了代码示例。