デフォルトのシリアル化機能をブーストで使用しようとしていますが、複雑なベクトルをシリアル化できませんでした。私はこれを試しました:
#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
その後、すべて正常に動作します。その解決策が思いつきません。何か助けはありますか?
ありがとう、
1月