Added base_class to complement virtual_base_class

This commit is contained in:
Randolph Voorhies
2013-07-01 16:12:43 -07:00
parent 8ec6ded75c
commit adcc87cc1f
4 changed files with 104 additions and 14 deletions

View File

@@ -34,18 +34,21 @@
struct Base
{
int y;
virtual void foo() = 0;
template<class Archive>
void save(Archive & ar) const
{
std::cout << "Saving Base" << std::endl;
ar( y );
}
template<class Archive>
void load(Archive & ar)
{
std::cout << "Loading Base" << std::endl;
ar( y );
}
};
@@ -59,12 +62,14 @@ struct MyType : public Base
void save(Archive & ar) const
{
std::cout << "Saving MyType" << std::endl;
ar( cereal::virtual_base_class<Base>( this ) );
}
template<class Archive>
void load(Archive & ar)
{
std::cout << "Loading MyType" << std::endl;
ar( cereal::base_class<Base>( this ) );
}
};
CEREAL_REGISTER_TYPE(MyType);