gpt4 book ai didi

c++ - vector 的 Boost.Serialize 错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:01:12 24 4
gpt4 key购买 nike

我正在尝试将默认的序列化工具与 boost 一起使用,但我没有设法序列化一个复杂的 vector 。我试过这个:

#include <fstream>
#include <complex>
#include <vector>

#include <boost/archive/text_oarchive.hpp>
#include <boost/serialization/vector.hpp>
#include <boost/serialization/complex.hpp>

using namespace std;
typedef complex<double> type;

template<class Archive>
void serialize(Archive& ar, vector<type>& objs, const unsigned version) {
ar & objs;
}

int main(){
vector<type> r;
r.push_back(1.3);
r.push_back(12.12);
r.push_back(-31.05);

ofstream ofs("test.txt");
boost::archive::text_oarchive oa(ofs);
oa & r;
return 0;
}

编译正常但在执行时崩溃。但如果我这样做

typedef double type

然后一切正常。我想不出解决办法。有帮助吗?

谢谢,

一月

最佳答案

只是总结并标记为已回答:

问题似乎出在 Visual Studio 2012 的 boost 1.54 实现上,因为据报告代码的 g++ 版本可以正常工作。感谢@DieterLücking 测试了我的代码并为我指明了正确的方向。

关于c++ - vector <complex> 的 Boost.Serialize 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19247692/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com