【发布时间】:2009-10-28 21:18:28
【问题描述】:
从构造函数执行包含对象的Boost反序列化失败,否则成功。
例如:
ContainingClass::ContainingClass() {
pNA = new objectArray*[NUMBER]; // allocates ptrs
// ...
pNA[ii] = new objectArray(SIZE);// allocates object array, and object array
// has a std::map "PatternsMap"
// ...
pNA[ii]->load(pNA[ii], "../release/NA Data/NAData_a description_NA0"); //fails
pNA[ii]->PatternsMap.size(); //size = 0
}
如果我在构造函数退出后调用以下代码行,那么一切都很好:
pNA[ii]->load(pNA[ii], "../release/NA Data/NAData_a description_NA0"); //succeeds
pNA[ii]->PatternsMap.size();//size > 0
有什么想法吗?请注意,在构造函数示例中,我验证了 objectArray 是首先构造的。
【问题讨论】:
标签: c++ serialization boost constructor