小编Ima*_*ami的帖子

C++ shared_ptr 序列化

我有一个名为A的类,我想将它的对象序列化到另一个名为B 的类中。但我不断收到此错误:

error: ‘class std::shared_ptr<A>’ has no member named ‘serialize’
Run Code Online (Sandbox Code Playgroud)

A类是:

class A
{
public:
  typedef shared_ptr<A> Ptr;
  string name;

  Predicate(const string &name = ""):name(name)
  {}

private:
  template<typename Archive>
  void serialize(Archive& archive, const unsigned int v) 
  {
    archive & name;
  }
  friend class B;
  friend class boost::serialization::access;
}
Run Code Online (Sandbox Code Playgroud)

B类:

class B
{
public:
  typedef unordered_set<A::Ptr, 
                        APtrKeyHash, 
                        APtrKeyEq> A_set_t;
  A_set_t test;

private:
  template<typename Archive>
  void serialize(Archive& archive, const unsigned int v) 
  {
    archive & …
Run Code Online (Sandbox Code Playgroud)

c++ serialization boost shared-ptr

2
推荐指数
1
解决办法
1350
查看次数

标签 统计

boost ×1

c++ ×1

serialization ×1

shared-ptr ×1