用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?

    下一篇: Class Instantiated from here error c++