use*_*749 7 c++ serialization boost vector boost-serialization
我一直在尝试序列化,但每次我遇到如下错误: -
error: 'class std::vector<int, std::allocator<int> >' has no member named 'serialize'
Run Code Online (Sandbox Code Playgroud)
这是我的源代码和序列化方法,知道我使用的是boost.serialize
template <class E, class T>
class heap{
vector<E> * hp;
int index;//index is pointing to first empty place after the last element
int maxsize;
T comp;//comparable object designed to compare the objects
private:
friend class boost::serialization::access;
// When the class Archive corresponds to an output archive, the
// & operator is defined similar to <<. Likewise, when the class Archive
// is a type of input archive the & operator is defined similar to >>.
template<class Archive>
void serialize(Archive & ar, const unsigned int version)
{
ar & hp;
ar & index;
ar & maxsize;
ar & comp;
}
public:
//default empty constructor
heap(){
hp = new vector<E>(MAX);
index = 0;
maxsize = MAX;
}
.
.
.
.
.
.
}
Run Code Online (Sandbox Code Playgroud)
然后我改变了这条线ar&hp; 成
for(int i = 0; i < hp->size(); i++)
ar & hp->at(i);
Run Code Online (Sandbox Code Playgroud)
我得到了更糟糕的错误
/../../../../boost/boost_1_48_0/boost/archive/text_oarchive.hpp:100: undefined reference to `boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::text_oarchive_impl(std::ostream&, unsigned int)'
debug/main.o: In function `~text_oarchive_impl':
Qt_4_8_0__4_8_0__Debug/../../../../boost/boost_1_48_0/boost/archive/text_oarchive.hpp:85: undefined reference to `boost::archive::basic_text_oprimitive<std::ostream>::~basic_text_oprimitive()'
Qt_4_8_0__4_8_0__Debug/../../../../boost/boost_1_48_0/boost/archive/text_oarchive.hpp:85: undefined reference to `boost::archive::basic_text_oprimitive<std::ostream>::~basic_text_oprimitive()'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4288 次 |
最近记录: |