Add serialization functions that call base classes, to avoid "unregistered void cast" errors (in MATLAB, as flagged by issue #398), as mentioned in http://tb-nguyen.blogspot.com/2009/08/more-on-using-boost-serialization-and.html
parent
63acd1a50c
commit
3b3e393817
|
@ -266,6 +266,13 @@ class ExpressionFactor2 : public ExpressionFactor<T> {
|
|||
virtual Expression<T> expression() const {
|
||||
return expression(this->keys_[0], this->keys_[1]);
|
||||
}
|
||||
|
||||
friend class boost::serialization::access;
|
||||
template <class ARCHIVE>
|
||||
void serialize(ARCHIVE& ar, const unsigned int /*version*/) {
|
||||
ar& boost::serialization::make_nvp(
|
||||
"ExpressionFactor", boost::serialization::base_object<ExpressionFactor<T> >(*this));
|
||||
}
|
||||
};
|
||||
// ExpressionFactor2
|
||||
|
||||
|
|
|
@ -60,6 +60,14 @@ struct BearingFactor : public ExpressionFactor2<T, A1, A2> {
|
|||
std::cout << s << "BearingFactor" << std::endl;
|
||||
Base::print(s, kf);
|
||||
}
|
||||
|
||||
private:
|
||||
friend class boost::serialization::access;
|
||||
template <class ARCHIVE>
|
||||
void serialize(ARCHIVE& ar, const unsigned int /*version*/) {
|
||||
ar& boost::serialization::make_nvp(
|
||||
"Base", boost::serialization::base_object<Base>(*this));
|
||||
}
|
||||
}; // BearingFactor
|
||||
|
||||
/// traits
|
||||
|
|
|
@ -73,6 +73,14 @@ class BearingRangeFactor
|
|||
Base::print(s, kf);
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
friend class boost::serialization::access;
|
||||
template <class ARCHIVE>
|
||||
void serialize(ARCHIVE& ar, const unsigned int /*version*/) {
|
||||
ar& boost::serialization::make_nvp(
|
||||
"Base", boost::serialization::base_object<Base>(*this));
|
||||
}
|
||||
}; // BearingRangeFactor
|
||||
|
||||
/// traits
|
||||
|
|
|
@ -65,6 +65,14 @@ class RangeFactor : public ExpressionFactor2<T, A1, A2> {
|
|||
std::cout << s << "RangeFactor" << std::endl;
|
||||
Base::print(s, kf);
|
||||
}
|
||||
|
||||
private:
|
||||
friend class boost::serialization::access;
|
||||
template <class ARCHIVE>
|
||||
void serialize(ARCHIVE& ar, const unsigned int /*version*/) {
|
||||
ar& boost::serialization::make_nvp(
|
||||
"Base", boost::serialization::base_object<Base>(*this));
|
||||
}
|
||||
}; // \ RangeFactor
|
||||
|
||||
/// traits
|
||||
|
|
Loading…
Reference in New Issue