【问题标题】:how do i serialize list variable of type <boost::shared_ptr<void *>>我如何序列化类型为 <boost::shared_ptr<void *>> 的列表变量
【发布时间】:2014-06-20 21:13:10
【问题描述】:

我真的不确定如何在类或结构中序列化boost::shared_ptr &lt;void *&gt; 类型的列表变量。一般来说,我会使用我们通常使用的相同方法

struct A
{
    std::list<boost::shared_ptr<void *>> mdb;
}

template<class Archive>
void serialize(Archive &d,const unsigned int version)
{
      d & mdb;  // not sure that this would work
}

编译时不会出错,但不会在我结束时序列化。

【问题讨论】:

  • 你的类型中有一个void*。你如何序列化void*
  • 如果上面写的真的编译了,我会感到惊讶。 “序列化”是什么意思?你确定你真正想要的是一个指向另一个 void 类型指针的共享指针吗?
  • @Pop - 是的 - std::list<:shared_ptr>> 这只是但我应该如何序列化这个

标签: c++ serialization boost boost-serialization


【解决方案1】:

你没有。 void* 很可能是

  • 一个句柄(对于一些原生 API);只有当 API 有足够的识别信息来在加载时重建句柄时,您才能序列化它
  • 类型双关语代表其他东西(这很愚蠢,那么只有真正的类型在那里)

【讨论】:

    猜你喜欢
    • 2014-07-01
    • 1970-01-01
    • 2012-10-05
    • 2014-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-05
    • 2017-10-04
    相关资源
    最近更新 更多