当使用Boost库对XML进行序列化时,我们可能需要为派生类执行此操作。在这种情况下,手册1指示包含对基类的引用:
BOOST_SERIALIZATION_BASE_OBJECT_NVP(my_base_class)
但是,如果此类在命名空间内,我们是否应该在没有命名空间的情况下包含 OR 的类的名称?
例如,基类是 Awesome :: Foo ,它的派生类是 Awesome :: Bar 。
问题是,我们应该在Bar的序列化实现中使用以下哪些语句?
BOOST_SERIALIZATION_BASE_OBJECT_NVP(Foo)
BOOST_SERIALIZATION_BASE_OBJECT_NVP(Awesome::Foo)
答案 0 :(得分:2)
我将从Boost文档中得出结论,案例1是正确的。
相关联的文档他们陈述BOOST_SERIALIZATION_BASE_OBJECT_NVP(my_base_class)
:
"请注意,这些宏必须在类的命名空间中使用, 并且不在参数中限定命名空间。 "
他们还在this example link使用此宏提供了代码示例。