【发布时间】:2011-08-13 11:30:38
【问题描述】:
所以我正在使用 boost::serialization 库,并且我试图覆盖一个类的构造方式,因为它没有默认构造函数。这是demonstrated here。对我来说,该函数似乎采用class* t,然后将其设置为指向一个新构造的对象。如果我错了,这肯定是我的错误的根源。
但是,构造我的类的唯一方法是使用另一个类 create() 函数,这意味着我需要偏离示例中的代码(这在 boost::serialization 命名空间中有所说明):::new(t)my_class(attribute);
我尝试简单地调用创建函数并将t 设置为等于返回的指针,但这似乎不起作用,因为在load_construct_data function 之后和serialization function 中,给定的myClass& 是和我设置的 't' 不一样。
我该如何做 ::new(t) 正在做的事情,以便使用 create 函数创建的对象跟随到序列化/其他函数中?
【问题讨论】:
-
我认为您的意思是精通而不是足够,但是您实际上并不需要说明这一点-标签中暗示了这一点。
-
另外,这个问题似乎与
boost无关——我们只需要找到一个替代placement new 以供非构造函数使用。
标签: c++ boost new-operator boost-serialization